网站首页 > 技术文章 正文
DeePMD-kit是一个流行的多体(many-body)深度学习势(deep learning potential)框架,需要从头安装tensorflow,比较繁琐,官网的安装教程也有一些暗坑,本文主要讲解如何在Ubuntu下顺利安装DeePMD-kit,主要参考资料[安装deepmd]和[源码安装TensorFlow]
https://blog.csdn.net/xszyqbr/article/details/82961934
https://github.com/deepmodeling/deepmd-kit/blob/master/doc/install-tf.1.12.md
在线安装必须的工具
#automake 工具
sudo apt-get install autoconf automake libtool
#根据是否已经安装make,git和cmake决定是否安装
sudo apt-get install make cmake git
安装JAVA环境
安装OpenJDK 8 JDK
sudo apt install openjdk-8-jdk
设置JAVA_HOME变量
#查看java可执行文件的实际目录,一般指向/etc/alternatives/java
ls -lrt /usr/bin/java
#查看/etc/alternatives/java的实际目录
ls -lrt /etc/alternatives/java
#一般指向 [/usr/lib/jvm/java-1.8.0-openjdk.x86_64](接下来用的到的)/bin/java
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86_64
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
安装bazel,必须安装0.15.0及以上版本
参考安装deepmd教程安装,但版本不一样,如果安装失败,按照方法2安装
使用预编译好的0.15.0版本的bazel二进制版本(https://blog.csdn.net/darkrabbit/article/details/81262556)
安装完成后,将bazel位置放在环境变量里,方法2默认会自动把可执行文件放到 /home/usr/bin目录下,如果默认这个目录已经在PATH里无需主动添加。
安装Anaconda3.5,并用conda安装blas
按照[安装deepmd]安装Anaconda,并加入到环境变量
使用conda安装blas
sudo conda install --channel https://conda.anaconda.org/anaconda blas
按照[源码安装TensorFlow]教程使用pip安装tensorflow1.12.0
下载tensorflow源码,安装tensorflow的C++接口
进入想放置tensorflow安装包的目录,比如
cd ~
git clone https://github.com/tensorflow/tensorflow tensorflow -b v1.12.0 --depth=1
cd tensorflow
./configure
,有较多的选项,参考博客(https://blog.csdn.net/yhily2008/article/details/79967118)选择配置。使用bazel 编译tensorflow,可以控制编译时的所用资源 等待非常久的时间
bazel build -c opt --verbose_failures //tensorflow:libtensorflow_cc.so
设置tensorflow的主安装目录,我装在用户目录
~/tensorflow_root
下export tensorflow_root=~/tensorflow_root
mkdir -p ${tensorflow_root}
在当前目录下下载tensorflow的依赖文件:Protobuf, Eigen, nsync and absl
Protobuf
#设置在${tensorflow_root}目录下新建tmps文件夹用于放置中间文件
mkdir -p ${tensorflow_root}/tmps
mkdir -p ${tensorflow_root}/tmps/proto
sed -i 's;PROTOBUF_URL=.*;PROTOBUF_URL=\"https://mirror.bazel.build/github.com/google/protobuf/archive/v3.6.0.tar.gz\";g' tensorflow/contrib/makefile/download_dependencies.sh
tensorflow/contrib/makefile/download_dependencies.sh
cd tensorflow/contrib/makefile/downloads/protobuf/
./autogen.sh
./configure --prefix=${tensorflow_root}/tmps/proto
make
make install
Eigen
mkdir -p ${tensorflow_root}/tmps/eigen
cd ../eigen
mkdir build_dir
cd build_dir
cmake -DCMAKE_INSTALL_PREFIX=${tensorflow_root}/tmps/eigen/ ../
make install
nsync
mkdir -p ${tensorflow_root}/tmps/nsync
cd ../../nsync
mkdir build_dir
cd build_dir
cmake -DCMAKE_INSTALL_PREFIX=${tensorflow_root}/tmps/nsync/ ../
make
make install
absl
cd ../../absl
bazel build
mkdir -p ${tensorflow_root}/include/
sudo rsync -avzh --include '*/' --include '*.h' --exclude '*' absl ${tensorflow_root}/include/
cd ../../../../..
将以上库文件拷贝到tensorflow的安装目录
mkdir -p ${tensorflow_root}/lib
cp bazel-bin/tensorflow/libtensorflow_cc.so ${tensorflow_root}/lib/
cp bazel-bin/tensorflow/libtensorflow_framework.so ${tensorflow_root}/lib/
cp ${tensorflow_root}/tmps/proto/lib/libprotobuf.a ${tensorflow_root}/lib/
cp ${tensorflow_root}/tmps/nsync/lib/libnsync.a ${tensorflow_root}/lib/
#可能是nsync/lib64/libnsync.a
然后拷贝头文件
mkdir -p ${tensorflow_root}/include/tensorflow
cp -r bazel-genfiles/* ${tensorflow_root}/include/
cp -r tensorflow/cc ${tensorflow_root}/include/tensorflow
cp -r tensorflow/core ${tensorflow_root}/include/tensorflow
cp -r third_party ${tensorflow_root}/include
cp -r ${tensorflow_root}/tmps/proto/include/* ${tensorflow_root}/include
cp -r ${tensorflow_root}/tmps/eigen/include/eigen3/* ${tensorflow_root}/include
cp -r ${tensorflow_root}/tmps/nsync/include/*h ${tensorflow_root}/include清理头文件目录下的源文件
cd ${tensorflow_root}/include
find . -name "*.cc" -type f -delete可以删除所有依赖的缓存文件
rm -fr ${tensorflow_root}/tmps/eigen ${tensorflow_root}/tmps/nsync ${tensorflow_root}/tmps/proto
安装DeePMD-kit
先在${tensorflow_root}的上级目录克隆DeePMD-kit源码
cd ${tensorflow_root} && cd ../
git clone https://github.com/deepmodeling/deepmd-kit.git deepmd-kit通过
deepmd_source_dir
变量记录源代码的位置cd deepmd-kit
export deepmd_source_dir=`pwd`
cd ${deepmd_source_dir}/source
mkdir build
cd build设置deepmd-kit的主安装目录,我装在用户目录
~/deepmd_root
下,执行cmake,export deepmd_root=~/deepmd_root
mkdir -p ${deepmd_root}
#如果用gcc>5.0 去掉选项-DTF_GOOGLE_BIN=true,如果运行时出现deepmd-kit/lib/deepmd/libop_abi.so: undefined symbol:请打开选项-DTF_GOOGLE_BIN=true
cmake -DTF_GOOGLE_BIN=true -DTENSORFLOW_ROOT=${tensorflow_root} \
-DCMAKE_INSTALL_PREFIX=${deepmd_root} ..如果cmake执行成功,make以及make install
make
make install如果一切顺利地话,你将在
$deepmd_root/bin
目录下找到以下可执行文件$ ls ${deepmd_root}/bin
dp_frz dp_ipi dp_test dp_train
#可以加入系统PATH
echo 'PATH='${deepmd_root}'/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Install LAMMPS’s DeePMD-kit module
参考官方安装教程,首先得学会lammps的安装。
Build DeePMD-kit with GPU support
参考官方安装教程。
猜你喜欢
- 2024-10-09 教你快速录制gif动图(动图录屏怎么弄?)
- 2024-10-09 简单实用且好看!基于electron的的开源图床工具
- 2024-10-09 ubuntu 环境下 ruby 环境快速搭建
- 2024-10-09 史上最全的实际操作的!git+jenkins+k8s 自动化部署运维
- 2024-10-09 HTTP压测工具wrk安装与使用(鲁班工具官网下载安装)
- 2024-10-09 基于docker安装myip开源工具查询本机ip和测试本机网络
- 2024-10-09 重玩 40 年前的经典游戏小蜜蜂,这次通关了源码
- 2024-10-09 open sora1.2容器构建教程指南(容器部署openstack)
- 2024-10-09 clang编译器简介(clang编译器下载)
- 2024-10-09 简单漂亮的(图床工具)开源图片上传工具——PicGo
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 519℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 489℃MySQL service启动脚本浅析(r12笔记第59天)
- 468℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 466℃启用MySQL查询缓存(mysql8.0查询缓存)
- 446℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 426℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 423℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)