一键顺利安装tensornet
背景:Tensornet介绍TensorNet是一个构建在TensorFlow之上针对广告推荐等大规模稀疏场景优化的分布式训练框架。TensorNet的目标是让所有使用TensorFlow的开发者可以快速的、方便的训练出稀疏参数超过百亿的超大模型。项目地址:https://github.com/Qihoo360/tensornet目标:安装和编译好环境,运行官方demo要想执行官方提供的第一个de
·
背景:Tensornet介绍
TensorNet是一个构建在TensorFlow之上针对广告推荐等大规模稀疏场景优化的分布式训练框架。TensorNet的目标是让所有使用TensorFlow的开发者可以快速的、方便的训练出稀疏参数超过百亿的超大模型。
项目地址:https://github.com/Qihoo360/tensornet
目标:安装和编译好环境,运行官方demo
要想执行官方提供的第一个demo 需要先搞定环境,你以为直接把项目官方提供的Dockerfile下载下来直接docker build就行了吗?基本上都会因为网络问题导致失败的。
你可以亲自试一下,如果成功就祝好再见,失败的话可以往下看,我来帮你。
我修改后的快速成功版Dockerfile
请下载后保存为Dockerfile:
FROM ubuntu:18.04
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
RUN apt-get update && apt-get install wget -y && \
apt-get install python3.6 -y && \
apt-get install python3-pip -y && \
apt-get install git -y && \
apt-get install libssl-dev -y && \
apt-get install lib32z1-dev -y && \
apt-get install curl -y
RUN wget https://gh.api.99988866.xyz/https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-linux-x86_64 && \
mv bazel-3.1.0-linux-x86_64 /usr/local/bin/bazel && \
chmod a+x /usr/local/bin/bazel
RUN ln -s /usr/bin/python3.6 /usr/bin/python
RUN pip3 install --upgrade pip && \
pip3 install tensorflow==2.3.0 -i https://mirrors.aliyun.com/pypi/simple/
RUN wget https://download.open-mpi.org/release/open-mpi/v1.4/openmpi-1.4.5.tar.gz && \
mkdir -p /root/opt && \
tar -zxf openmpi-1.4.5.tar.gz -C /root/opt/ && \
mv /root/opt/openmpi-1.4.5 /root/opt/openmpi && \
cd /root/opt/openmpi && \
./configure CFLAGS="-fPIC" CXXFlAGS="-fPIC" --prefix=/root/opt/openmpi --enable-static && \
make -j20 && \
make install
RUN git clone https://github.com/Qihoo360/tensornet.git && \
cd /tensornet && \
sed -i s@https://github.com/tensorflow/@https://gh.api.99988866.xyz/https://github.com/tensorflow/@g WORKSPACE && \
bash configure.sh --openmpi_path /root/opt/openmpi && \
bazel build -c opt //core:_pywrap_tn.so && \
cp -f /tensornet/bazel-bin/core/_pywrap_tn.so /tensornet/tensornet/core
ENV PATH "/root/opt/openmpi/bin:${PATH}"
ENV PYTHONPATH "/tensornet:${PYTHONPATH}"
ENV LD_LIBRARY_PATH="/root/opt/openmpi/lib:${LD_LIBRARY_PATH}"
CMD ["python", "-c", "import tensorflow as tf; import tensornet as tn; print(tn.version)"]
然后执行build:
nohup docker build -f Dockerfile -t tensornet-image . > dockerbuild.log 2>&1 &
看到这个就表示构建成功:
Successfully built b2fa9eec59cc
相对于原版文件的修改点讲解:
- 替换apt的源为阿里云的。默认的源是ubuntu官网的,特别特别特别慢。
- install python3.6而不是3.7(直接删掉这行应该也行,但我没试过)。因为ubuntu18.04里面已经带了3.6,如果再装个3.7导致多个环境,那么后面pip安装tensorflow的时候会有点问题。既然你想一键生成环境不要人工干预,就只留一个3.6版本吧!
- bazel的release文件从github上下载超级超级慢,所以我找到一个免费加速下载的方式:在要下载的url前面加个GitHub 文件加速
ps:git clone的免费加速方式很多,但是release文件下载,我暂时只找到这一个最方便的方式。 - pip下载tensorflow特别慢,要用国内镜像,比如阿里云
- bazel构建的时候还会根据WORKSPACE文件里的地址下载文件,github的项目依然可以考虑用GitHub 文件加速
构建成功之后
启动docker以及安装和启动jupyter,执行demo咯!
#查看镜像列表
docker images
#启动一个使用此镜像的容器,注意net=host是为了jupyter使用端口让别的机器能访问到
docker run --name tensornet-v1 --net=host -it tensornet-image bash
#安装jupyter
pip install jupyter -i https://mirrors.aliyun.com/pypi/simple/
#启动jupyter,建议在/tensornet文件夹执行如下命令
jupyter notebook --generate-config
jupyter notebook password
nohup jupyter notebook --ip='0.0.0.0' --port=9999 --allow-root --no-browser > /var/log/jupyter.log 2>&1 &
打开浏览器访问此ip:9999
demo的这个部分别忘了修改成实际路径/tensornet,之后的不再赘述了。
更多推荐
已为社区贡献1条内容
所有评论(0)