Skip to content

Instantly share code, notes, and snippets.

@lukeyeager
Last active May 16, 2017 21:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save lukeyeager/ba948f1d56e4ab407874 to your computer and use it in GitHub Desktop.
Save lukeyeager/ba948f1d56e4ab407874 to your computer and use it in GitHub Desktop.
Install DIGITS and NVcaffe on CentOS 7
# nvidia-docker run -ti nvidia/cuda:7.0-devel-centos7
yum update
yum install epel-release
yum install gcc gcc-c++ git vim python-devel python-pip make cmake \
blas-devel lapack-devel openblas-devel \
protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel gflags-devel glog-devel lmdb-devel libjpeg-devel libpng-devel
# Too old:
# yum install Cython scipy python-matplotlib
yum install numpy python-pandas python-imaging protobuf-python h5py
yum-builddep python-matplotlib
cd ~
git clone https://github.com/NVIDIA/caffe.git
cd caffe
cat python/requirements.txt | xargs -n1 pip install
mkdir build
cd build
cmake .. -DBLAS=Open
make -j12
# DIGITS
yum install python-gevent python-flask python-flask-wtf
cd ~
git clone https://github.com/NVIDIA/digits.git
cd digits
cat requirements.txt | xargs -n1 pip install
export CAFFE_HOME=~/caffe
./digits-devserver
@elliotekoch
Copy link

Luke, nm as I thought this was a repository issue. Will inform LA about it for his centos 7 image.

just fyi other readers i used this repository to fix my python-pip issue:
cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://dl.fedoraproject.org/pub/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://dl.fedoraproject.org/pub/epel/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=1
gpgkey=http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]

@elliotekoch
Copy link

Found a couple of errors when I installed this. With some minor intermediate edits installation does go okay. here are the errors i get...

  1. incorrect declarations:
    [ 31%] Building CXX object src/caffe/CMakeFiles/caffe.dir/layers/euclidean_loss_layer.cpp.o
    In file included from /root/caffe/src/caffe/layers/detectnet_transform_layer.cpp:3:0:
    /root/caffe/include/caffe/layers/detectnet_transform_layer.hpp: In member function 'bool caffe::AugmentSelection::doDesaturation() const':
    /root/caffe/include/caffe/layers/detectnet_transform_layer.hpp:38:64: error: 'UINT8_MAX' was not declared in this scope
    bool doDesaturation() const { return saturation < (1.0 - 1.0/UINT8_MAX); }
    ^
    [ 33%] Building CXX object src/caffe/CMakeFiles/caffe.dir/layers/exp_layer.cpp.o
    /root/caffe/src/caffe/layers/detectnet_transform_layer.cpp: In member function 'void caffe::DetectNetTransformationLayer::retrieveMeanImage(cv::Size)':
    /root/caffe/src/caffe/layers/detectnet_transform_layer.cpp:86:23: error: 'UINT8_MAX' was not declared in this scope
    data_mean_ /= Dtype(UINT8_MAX);
    ^
    /root/caffe/src/caffe/layers/detectnet_transform_layer.cpp: In member function 'void caffe::DetectNetTransformationLayer::retrieveMeanChannels()':
    /root/caffe/src/caffe/layers/detectnet_transform_layer.cpp:94:56: error: 'UINT8_MAX' was not declared in this scope
    mean_values_.fill(t_param_.mean_value(0) / Dtype(UINT8_MAX));
    ^
    /root/caffe/src/caffe/layers/detectnet_transform_layer.cpp: In member function 'caffe::DetectNetTransformationLayer::Mat3v caffe::DetectNetTransformationLayer::transform_image_cpu(const Mat3v&, const caffe::AugmentSelection&)':
    /root/caffe/src/caffe/layers/detectnet_transform_layer.cpp:420:33: error: 'UINT8_MAX' was not declared in this scope
    Mat3v img = src_img.clone() / UINT8_MAX;
    ^
    [ 33%] Building CXX object src/caffe/CMakeFiles/caffe.dir/layers/filter_layer.cpp.o

  2. Fails for existing directories during clone process:

The procedure cannot do the cloning if /root/caffe and /root/digits already exist. My hack was to remove those directories before the cloning steps. But i need to comment out the cloning in order to do the hacks to fix the step 1 above....

@elliotekoch
Copy link

darn i lost my hacks. for sure the declaration issues are in these files:
find /root/caffe -type f -exec grep -l UINT8_MAX {} ; | & tee found_unit.log
/root/caffe/include/caffe/layers/detectnet_transform_layer.hpp
/root/caffe/src/caffe/layers/detectnet_transform_layer.cpp
/root/caffe/src/caffe/layers/detectnet_transform_layer.cu

I'll try to redo them.... if you can get it before i do please let me know.

thanks
Elliot

@elliotekoch
Copy link

elliotekoch commented May 16, 2017

Luke, here are my proposed changes to the Centos 7 installation. Please be so kind as to review and advise. If you agree, I would like to see these fixes or whatever you think is better into the mainstream code.

still trying to figure out how the pull request mechanism works, so here is the link in the meantime:

https://github.com/elliotekoch/Fixes-for-Digits-installation-on-Centos-7

Thanks,
Elliot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment