PaddlePaddle
NVIDA 驱动安装
CentOS
vim /lib/modprobe.d/dist-blacklist.conf
- 添加
blacklist nouveau
, 屏幕 CentOS 自带的 nouveau - 重建 initramfs image
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
reboot
lsmod | grep nouveau
查看是否禁用成功chmod +x NVIDIA-Linux-x86_64-***.run && ./NVIDA-Linux-x86_64-***.run
运行程序安装驱动
API
Program
- 含义: 在 fluid 中默认有
default_startup_program()
和default_main_program()
两个 program, 如果不搭建网络, 则都为空, 如果搭建了网络, 则default_startup_program()
只需要执行一次用来初始化参数,default_main_program()
每一个 mini-batch 都执行进行前向传播; program 可以理解为一个计算图, 要给 program 添加节点和操作, 需要在with fluid.program_guard(program1, program2)
中构建网络, 如果没有此语句, 则默认在default_*
中, 其中参数program1
为main_program
, 每一次 mini-batch 都执行,program2
为startup_program
, 只需要执行一次初始化操作; 开发者只需要关注program1
参数即可,program2
参数只是单单初始化参数 - 创建方式
program = fluid.Program()
main_program = fluid.default_main_program() # 默认
startup_program = fluid.default_startup_program() # 默认
模型可视化
ONNX
-
paddlepaddle 自身无法可视化图, 需要将网络结构转为 onnx 的 .pb 文件格式才行, 使用 paddle2onnx 命令行工具转换
-
操作
- 安装依赖
- paddlepaddle
- onnx
- onnxruntime
- paddle2onnx
- 转换命令
paddle2onnx --fluid_model ./infer_model/ --onnx_model model.pb
- 关于 infer_model, 此为目录, 在 paddlepaddle 的网络模型中使用
fluid.save_inference_model(dirname, [input], [output], exe)
将模型和参数保存在 dirname 中, 其中 __model__ 为模型, 其余文件为参数
- 关于 infer_model, 此为目录, 在 paddlepaddle 的网络模型中使用
- 下载 Netron 软件输入 .pb 文件进行可视化
- 安装依赖
-
对第 1 点的补充, paddlepaddle 无法可视化的原因是 protobuf 版本不对, 使用命令安装
pip install protobuf==3.6.1