Select Git revision
keras-tensorflow-cpu.def
keras-tensorflow-cpu.def 13.38 KiB
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME keras + tensorflow
APPLICATION_VERSION 2.2.0 + 1.8
APPLICATION_URL https://keras.io/
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.5.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20180712
%setup
%environment
# Set system locale
export LC_ALL=C
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install libtool
apt-get -y install pkg-config
apt-get -y install gfortran
apt-get -y install zip
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install Bazel from Debian Package
apt-get -y install openjdk-8-jdk
apt-get -y install zlib1g-dev
wget https://github.com/bazelbuild/bazel/releases/download/0.13.1/bazel_0.13.1-linux-x86_64.deb
dpkg -i bazel_0.13.1-linux-x86_64.deb
# Install TensorFlow python(2) dependencies
apt-get -y install python
apt-get -y install python-dev
apt-get -y install python-pip
apt-get -y install python-wheel
apt-get -y install python-enum34
apt-get -y install python-mock
apt-get -y install python-numpy
# Download TensorFlow source
cd /opt
git clone https://github.com/tensorflow/tensorflow
cd tensorflow
git checkout r1.8
# Build and install TensorFlow for python(2)
echo '#!/usr/bin/expect -f' > install-tensorflow-python.exp
echo 'spawn ./configure' >> install-tensorflow-python.exp
echo 'expect "Please specify the location of python. \[Default is /usr/bin/python\]: "' >> install-tensorflow-python.exp
echo 'send "/usr/bin/python\r"' >> install-tensorflow-python.exp
echo 'expect "Please input the desired Python library path to use. Default is \[/usr/local/lib/python2.7/dist-packages\]\r"' >> install-tensorflow-python.exp
echo 'send "/usr/local/lib/python2.7/dist-packages\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with jemalloc as malloc support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "Y\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Google Cloud Platform support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Hadoop File System support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Amazon S3 File System support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Apache Kafka Platform support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with XLA JIT support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with GDR support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with VERBS support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with OpenCL SYCL support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with CUDA support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to download a fresh release of clang? (Experimental) \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with MPI support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Please specify optimization flags to use during compilation when bazel option \"--config=opt\" is specified \[Default is -march=native\]: "' >> install-tensorflow-python.exp
echo 'send " -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mtune=generic\r"' >> install-tensorflow-python.exp
echo 'expect "Would you like to interactively configure ./WORKSPACE for Android builds? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "> "' >> install-tensorflow-python.exp
chmod +x install-tensorflow-python.exp
./install-tensorflow-python.exp
# Clear /home/root/.cache prior to bazel build. Otherwise, previous builds may cause some conflicts. See 'dangling symbolic links' at https://github.com/tensorflow/tensorflow/issues/13928
rm -rf /home/root/.cache
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package tensorflow_pkg
pip install tensorflow_pkg/tensorflow-1.8.0-cp27-cp27mu-linux_x86_64.whl
# Install common python packages for data science and machine learning applications
apt-get -y install python-scipy
apt-get -y install python-pandas
apt-get -y install python-matplotlib
apt-get -y install ipython
apt-get -y install ipython-notebook
apt-get -y install python-sympy
apt-get -y install python-nose
apt-get -y install python-sklearn
apt-get -y install python-mlpy
apt-get -y install python-nltk
apt-get -y install python-statsmodels
apt-get -y install libopencv-dev
apt-get -y install python-opencv
# Install common python packages for the biological and biomedical sciences
apt-get -y install python-biopython
apt-get -y install python-biopython-sql
# Install other common python packages
apt-get -y install python-h5py
# Install TensorFlow python3 dependencies
apt-get -y install python3-numpy
apt-get -y install python3-dev
apt-get -y install python3-pip
apt-get -y install python3-wheel
apt-get -y install python3-mock
# Build and install TensorFlow for python3
echo '#!/usr/bin/expect -f' > install-tensorflow-python3.exp
echo 'spawn ./configure' >> install-tensorflow-python3.exp
echo 'expect "Please specify the location of python. \[Default is /usr/bin/python\]: "' >> install-tensorflow-python3.exp
echo 'send "/usr/bin/python3\r"' >> install-tensorflow-python3.exp
echo 'expect "Please input the desired Python library path to use. Default is \[/usr/local/lib/python3.5/dist-packages\]\r"' >> install-tensorflow-python3.exp
echo 'send "/usr/local/lib/python3.5/dist-packages\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with jemalloc as malloc support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "Y\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Google Cloud Platform support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Hadoop File System support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Amazon S3 File System support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Apache Kafka Platform support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with XLA JIT support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with GDR support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with VERBS support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with OpenCL SYCL support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with CUDA support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to download a fresh release of clang? (Experimental) \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with MPI support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Please specify optimization flags to use during compilation when bazel option \"--config=opt\" is specified \[Default is -march=native\]: "' >> install-tensorflow-python3.exp
echo 'send " -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mtune=generic\r"' >> install-tensorflow-python3.exp
echo 'expect "Would you like to interactively configure ./WORKSPACE for Android builds? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "> "' >> install-tensorflow-python3.exp
chmod +x install-tensorflow-python3.exp
./install-tensorflow-python3.exp
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package tensorflow_pkg
pip3 install tensorflow_pkg/tensorflow-1.8.0-cp35-cp35m-linux_x86_64.whl
# Install common python3 packages for data science and machine learning applications
apt-get -y install python3-scipy
apt-get -y install python3-pandas
apt-get -y install python3-matplotlib
apt-get -y install ipython3
apt-get -y install ipython3-notebook
apt-get -y install python3-sympy
apt-get -y install python3-nose
apt-get -y install python3-sklearn
apt-get -y install python3-nltk
# Install common python3 packages for the biological and biomedical sciences
apt-get -y install python3-biopython
apt-get -y install python3-biopython-sql
# Install other common python3 packages
apt-get -y install python3-h5py
# Install Keras dependencies for python(2) and python3
apt-get -y install python-yaml
apt-get -y install python3-yaml
cd /opt
# Download, build, and install Keras
wget https://github.com/keras-team/keras/archive/2.2.0.tar.gz
tar -xzvf 2.2.0.tar.gz
cd /opt/keras-2.2.0
python setup.py install
python3 setup.py install
# Set container environment variables
cd /.singularity.d/env
# Update database for mlocate
updatedb
%files
%runscript
%test