这些教程其实早就写完了,发现一直都没有人发相关的教程,过年回家发现没地方给硬盘供电,就搁浅了,现在补一补。
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.
不支持这个平台,于是放弃。
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。
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
#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…
conda install tensorflow-gpu
pip install
和conda install
两者安装方法原理上是一样的,但使用conda install
安装TensorFlow时我换了好几个网络环境都不行,pip install
一下就安装完了。
当然,这一切都安装在Anaconda的虚拟环境中
ipython #启动ipython
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# 如果能够正确显示出GPU信息说明成功
由于之前同名容器/虚拟环境没有移除干净,导致创建的时候出现错误:
CondaValueError: prefix already exists:
/home/houiin/Others/Anaconda3/envs/deeplabcut-py36
这是因为之前有一个相同名称的容器,但是使用conda remove
没有被完全移除干净导致的,
只需删除/home/houiin/.conda/envs
和/Anaconda安装路径/envs
里边对应的文件即可,然后重启终端
问题复现:
No module named ‘tensorflow’
无法导入TensorFlow的模块,不过可以肯定的是TensorFlow一定已经存在于anaconda环境中,因为退出环境后新开一个终端直接提示 找不到模块
两种安装方式均出现这个错误
解决办法! 划重点!!!
在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 info --envs #列出系统中现有的环境
conda deactivate #退出当前环境
conda create --name 新克隆的环境名称 --clone 被克隆的环境名称 #克隆现有的环境
anaconda-navigator #进入工具中心