Jetson TX2 install tensorflow

To install tensorflow on Jetson TX2, you need to compile it from the source code. At least I see that the current tutorials are compiled on the source code, and the compilation time will be long. 

Source code compilation and installation of tensorflow can refer to another tutorial of mine. Here are some important points to note.


bazel和tensorflow

Be careful not to set the version of bazel and tensorflow too high. I chose the version of bazel and tensorflow too high, which caused problems after installation. Although I don’t know if it is because the dependencies are not complete, it is recommended to choose a lower version here. Version.

My choice here is bazel-5.4, tensorflow1.3


Insufficient memory space

It is said on the Internet that compiling tensorflow may cause insufficient memory space, so a swap file needs to be made, but in fact I have not encountered it, but I still record it

#Create an 8GB swapfile
fallocate -l 8G swapfile
#Change permission of the swapfile
chmod 600 swapfile
#Create swap area
mkswap swapfile
#Activate the swap area
sudo swapon swapfile
# deactive the swap are
sudo swapoff swapfile
#Confirm swap area being used
swapon -s

Modify tensorflow/stream_executor/cuda/cuda_gpu_executor.cc

Find the function static int TryToReadNumaNode(conststring &pci_bus_id,intdevice_ordinal) in tensorflow/stream_executor/cuda/cuda_gpu_executor.cc, and add the content at the beginning

LOG(INFO) << "ARM has no NUMA node, hardcoding to return zero";
return 0;

Calculate ability

When executing ./configure, if you want to use cuda, you will be asked to fill in Cuda compute capabilities, remember that the Cuda compute capabilities of Jetson TX2 is 6.2


Eigen error

external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:359:55: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:360:55: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:360:55: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:374:56: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstoreu(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:374:56: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:375:69: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstoreu(px+PacketSize, padd(pm.pmul(pc,xi1),pcj.pmul(ps,yi1))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:375:69: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:376:56: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstore (py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:376:56: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:377:69: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pm.pmul(ps,xi1))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:377:69: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:385:66: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstoreu(x+peelingEnd, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:385:66: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:386:66: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:386:66: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:415:53: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi))); 
^ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:415:53: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
external/eigen_archive/Eigen/src/Jacobi/Jacobi.h:416:53: error: ‘struct Eigen::internal::conj_helper<__vector(4) __builtin_neon_sf, Eigen::internal::Packet2cf, false, false>’ has no member named ‘pmul’ 
pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));

These errors are problems with the arm part of eigen, the solution: https://github.com/tensorflow/tensorflow/issues/9697

https://github.com/samjabrahams/tensorflow-on-raspberry-pi/issues/101

https://bitbucket.org/eigen/eigen/commits/d781c1de9834/

You can modify it manually, or go to the next Eigen version 3.3 modified for arm to replace ~/.cache/bazel/_bazel_ubuntu/5a48b4b8cc5de8b183f660553d84cc0b/external/eigen_archive/Eigen (the long list of directories depends on your own ) under the Eigen folder ( download link: )

The manual modification method is to change the tensorflow/workspace.bzl file

native.new_http_archive(
    name = "eigen_archive",
    urls = [
        "http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
        "https://bitbucket.org/eigen/eigen/get/f3a22f35b044.tar.gz",
    ],
    sha256 = "ca7beac153d4059c02c8fc59816c82d54ea47fe58365e8aded4082ded0b820c4",
    strip_prefix = "eigen-eigen-f3a22f35b044",
    build_file = str(Label("//third_party:eigen.BUILD")),
)

replace with

native.new_http_archive(
      name = "eigen_archive",
      urls = [
          "http://mirror.bazel.build/bitbucket.org/eigen/eigen/get/d781c1de9834.tar.gz",
          "https://bitbucket.org/eigen/eigen/get/d781c1de9834.tar.gz",
      ],
      sha256 = "a34b208da6ec18fa8da963369e166e4a368612c14d956dd2f9d7072904675d9b",
      strip_prefix = "eigen-eigen-d781c1de9834",
      build_file = str(Label("//third_party:eigen.BUILD")),
  )


GL header file problem

Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/opengl.cpp.o
In file included from /home/ubuntu/build/opencv/modules/core/src/opengl.cpp:50:0:
/usr/local/cuda/include/cuda_gl_interop.h:64:2: error: #error Please include the appropriate gl headers before including cuda_gl_interop.h
 #error Please include the appropriate gl headers before including cuda_gl_interop.h
  ^
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/src/opengl.cpp.o] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2

comment /usr/local/cuda/include/cuda_gl_interop.h

#ifndef GL_VERSION
#error Please include the appropriate gl headers before including cuda_gl_interop.h
#endif
#else

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324457858&siteId=291194637