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.bakdracut /boot/initramfs-$(uname -r).img $(uname -r)
rebootlsmod | 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