DeepLabCut安装篇(一):基础环境配置


0x00 开始之前的废话

这些教程其实早就写完了,发现一直都没有人发相关的教程,过年回家发现没地方给硬盘供电,就搁浅了,现在补一补。

DeepLabCut可以认为是一种无需标记【其实是进行少量的标记】的深度学习(动物)姿态估计与行为跟踪
放一段官方介绍:

DeepLabCut is a toolbox for markerless pose estimation of animals performing various tasks, like trail tracking, reaching in mice and various Drosophila behaviors during egg-laying (see Mathis et al. for details). There is, however, nothing specific that makes the toolbox only applicable to these tasks and/or species. The toolbox has also already been successfully applied (by us and others) to rats, humans, various fish species, bacteria, leeches, various robots, cheetahs, mouse whiskers and race horses. This work utilizes the feature detectors (ResNets + readout layers) of one of the state-of-the-art algorithms for human pose estimation by Insafutdinov et al., called DeeperCut, which inspired the name for our toolbox

Anaconda3我所使用的版本自带的是Python3.7,但是发现Python3.7在接下来安装wxPyhton的时候提示

wxPython-4.0.3-cp36-cp36m-linux_x86_64.whl is not a supported wheel on this platform.

不支持这个平台,于是放弃。

0x01 修改源

Anaconda清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

此时在/home下面会多一个.condarc的文件,里面便是我们刚刚配置的源。

Tip: 隐藏文件可以用Ctrl + H显示

然后关闭终端,重新开启Anaconda。

0x02 创建容器环境

conda create -n deeplabcut-py36 python=3.6

其中houiin-deeplabcut-py36是我对这个容器的命名

$ conda create -n houiin-deeplabcut-py36 python=3.6
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.5.11
  latest version: 4.5.12

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: /home/houiin/.conda/envs/houiin-deeplabcut-py36

#略过,不贴出来了

Proceed ([y]/n)? 

输入y自动配置环境

国内网络环境比较尴尬,需要话费很长时间进行下载。

基本环境配置完成

激活这个环境

conda activate deeplabcut-py36

可以看到用户名之前已经 标出了这个环境的名字,如果创建错的话可以直接conda remove 环境名字 对其移除

如果需要退出这个环境则可以使用 conda deactivate

0x03 安装TensorFlow

1. 官方给的方法

#CPU ONLY
pip install --ignore-installed tensorflow==1.10 

#GPU:(tensorflow官方的命令)
pip install tensorflow-gpu #这一条我用电信网络才执行成功

#deeplabcut 官方推荐
pip install tensorflow-gpu==1.8

有些人认为:pip install适用Windows,Linux下用conda install更好,

实测这两个方法一样,不过既然在Anaconda环境下就更推荐conda install

目前GPU最新的版本是1.12

执行这个命令下载的文件是https://files.pythonhosted.org/packages/55/7e/bec4d62e9dc95e828922c6cec38acd9461af8abe749f7c9def25ec4b2fdb/tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl

网络不好的朋友可以先下载再本地安装——比如我自己orz…

2. 我所用的是:

conda install tensorflow-gpu

pip installconda install两者安装方法原理上是一样的,但使用conda install安装TensorFlow时我换了好几个网络环境都不行,pip install一下就安装完了。

当然,这一切都安装在Anaconda的虚拟环境中

0x04 验证TensorFlow是否安装成功

ipython #启动ipython

import tensorflow as tf

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# 如果能够正确显示出GPU信息说明成功

错误解决方法

1. Anaconda3无法创建容器

由于之前同名容器/虚拟环境没有移除干净,导致创建的时候出现错误:

CondaValueError: prefix already exists:

/home/houiin/Others/Anaconda3/envs/deeplabcut-py36

这是因为之前有一个相同名称的容器,但是使用conda remove没有被完全移除干净导致的,

只需删除/home/houiin/.conda/envs/Anaconda安装路径/envs里边对应的文件即可,然后重启终端

2. TensorFlow找不到模块的解决办法

问题复现:

No module named ‘tensorflow’

无法导入TensorFlow的模块,不过可以肯定的是TensorFlow一定已经存在于anaconda环境中,因为退出环境后新开一个终端直接提示 找不到模块

两种安装方式均出现这个错误

No module named 'tensorflow’解决办法

解决办法! 划重点!!!

在ipython里边首先载入sys模块

import sys

sys.path  #查看sys.path

重点来了!!!

由于我们TensorFlow安装在deeplabcut-py36这个环境中,是不能够在大环境下直接被访问到的,只需把deeplabcut-py36这个环境的路径添加进sys.path问题即可解决

不过半年前我用CPU版本的时候没遇到这个问题

新开一个终端,conda info --envs看一下目前所有容器环境的路径,然后到对应的路径下找到lib,看看有没有创建容器时制定的Python版本文件夹

sys.path.append ("/home/houiin/anaconda3/envs/deeplabcut-py36/lib/python3.6/site-packages") 
#添加deeplabcut环境所需lib库的路径

重新试一下:import tensorflow as tf

没毛病!!!

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

显卡被成功识别!!!完成完成!

说明这个解决思路没有错,那我们就把这个路径永久的写入到sys.path里边:

在Anaconda3的大环境下写入这个路径:/anaconda3/envs/deeplabcut-py36/lib/python3.6/site-packages

后缀名一定要是\.pth,保存!

重启ipython,发现已经能够正常导入tensorflow

Conda常用命令

conda info --envs	#列出系统中现有的环境

conda deactivate	#退出当前环境

conda create --name 新克隆的环境名称 --clone 被克隆的环境名称  #克隆现有的环境

anaconda-navigator	#进入工具中心

参考文章

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐