|
#!/bin/bash |
|
|
|
|
|
|
|
echo "------------------------- Installing Caffe -------------------------" |
|
echo "NOTE: This script assumes that CUDA and cuDNN are already installed on your machine. Otherwise, it might fail." |
|
|
|
|
|
|
|
function exitIfError { |
|
if [[ $? -ne 0 ]] ; then |
|
echo "" |
|
echo "------------------------- -------------------------" |
|
echo "Errors detected. Exiting script. The software might have not been successfully installed." |
|
echo "------------------------- -------------------------" |
|
exit 1 |
|
fi |
|
} |
|
|
|
|
|
|
|
echo "------------------------- Checking Ubuntu Version -------------------------" |
|
ubuntu_version="$(lsb_release -r)" |
|
echo "Ubuntu $ubuntu_version" |
|
if [[ $ubuntu_version == *"14."* ]]; then |
|
ubuntu_le_14=true |
|
elif [[ $ubuntu_version == *"16."* || $ubuntu_version == *"15."* || $ubuntu_version == *"17."* || $ubuntu_version == *"18."* ]]; then |
|
ubuntu_le_14=false |
|
else |
|
echo "Ubuntu release older than version 14. This installation script might fail." |
|
ubuntu_le_14=true |
|
fi |
|
exitIfError |
|
echo "------------------------- Ubuntu Version Checked -------------------------" |
|
echo "" |
|
|
|
|
|
|
|
echo "------------------------- Installing some Caffe Dependencies -------------------------" |
|
|
|
sudo apt-get --assume-yes update |
|
sudo apt-get --assume-yes install build-essential |
|
|
|
sudo apt-get --assume-yes install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler |
|
sudo apt-get --assume-yes install --no-install-recommends libboost-all-dev |
|
|
|
|
|
sudo apt-get --assume-yes install libgflags-dev libgoogle-glog-dev liblmdb-dev |
|
|
|
|
|
sudo apt-get --assume-yes install python-setuptools python-pip python-dev build-essential |
|
sudo apt-get install python-numpy |
|
sudo easy_install pip |
|
sudo -H pip install numpy protobuf |
|
|
|
sudo ldconfig |
|
|
|
|
|
exitIfError |
|
echo "------------------------- Some Caffe Dependencies Installed -------------------------" |
|
echo "" |
|
|
|
|
|
|
|
echo "------------------------- Compiling Caffe -------------------------" |
|
if [[ $ubuntu_le_14 == true ]]; then |
|
cp Makefile.config.Ubuntu14_cuda8.example Makefile.config |
|
else |
|
cp Makefile.config.Ubuntu16_cuda8.example Makefile.config |
|
fi |
|
|
|
make all -j`nproc` && make distribute -j`nproc` |
|
|
|
|
|
exitIfError |
|
echo "------------------------- Caffe Compiled -------------------------" |
|
echo "" |
|
|
|
|
|
|
|
echo "------------------------- Caffe Installed -------------------------" |
|
echo "" |
|
|