问题描述
我目前正在尝试构建一个docker容器,该容器应该能够在Xavier AGX之上运行GPU加速的tensorflow。
我的方法来自example和nvidia官方文档jetson-tensorflow。
我的Dockerfile看起来像这样:
FROM nvcr.io/nvidia/l4t-base:r32.4.2
workdir /
RUN apt update && apt install -y --fix-missing make g++
RUN apt update && apt install -y --fix-missing python3-pip libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev libjpeg8-dev liblapack-dev libblas-dev gfortran python3-h5py
RUN pip3 install -U pip testresources setuptools cython numpy==1.16.1 future==0.17.1 mock==3.0.5 h5py==2.9.0 keras_preprocessing==1.0.5 keras_applications==1.0.8 gast==0.2.2 pybind11
RUN pip3 install --pre --no-cache-dir --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow
copY requirements.txt .
RUN pip3 install -r requirements.txt
copY . .
CMD ["python3","-u","app.py"]
但是,我遇到了与h5py相关的错误:
In file included from /tmp/pip-build-cdi1gcqf/h5py/h5py/defs.c:654:0:
/tmp/pip-build-cdi1gcqf/h5py/h5py/api_compat.h:27:10: Fatal error: hdf5.h: No such file or directory
#include "hdf5.h"
添加时
HDF5_DIR=/usr/lib/x86_64-linux-gnu/hdf5/serial/
在安装h5py之前,我成功完成安装tensorflow的阶段。
但是,然后tensorflow安装h5py == 2.10.0,在此我再次遇到错误:
error libhdf5.so: No such file or Directory
Xavier的JetPack版本是4.4,而l4t版本是32.4.2
任何帮助将不胜感激!
最好的祝福
多米尼克
解决方法
解决方案是更改:
h5py == 2.9.0 到 h5py == 2.10.0
在第一个安装命令中。
以下Dockerfile有效:
FROM nvcr.io/nvidia/l4t-base:r32.4.2
WORKDIR /
RUN apt update && apt install -y --fix-missing make g++
RUN apt update && apt install -y --fix-missing python3-pip libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev libjpeg8-dev liblapack-dev libblas-dev gfortran python3-h5py
RUN HDF5_DIR=/usr/lib/x86_64-linux-gnu/hdf5/serial/ pip3 install -U pip testresources setuptools cython numpy==1.16.1 future==0.17.1 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.0.5 keras_applications==1.0.8 gast==0.2.2 pybind11
RUN pip3 install --pre --no-cache-dir --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow
COPY requirements.txt .
RUN pip3 install -r requirements.txt
COPY . .
CMD ["python3","-u","app.py"]