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