两种方法配置深度学习环境:
1. 在开发机直接安装(注意可能引起其他依赖python运行的程序无法工作):
sudo pip installtensorflow-1.2.0rc2-cp27-cp27mu-manylinux1_x86_64.whl -ihttp://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
2. 虚拟化方式安装,该方法有较好的隔离性,可移植性和方便共享,不用担心python版本与他应用的冲突
1. 可联网的计算机安装centos7
2. centos7中安装Docker for CentOS Distribution CE版(运行命令检查安装是否成功:sudodocker run hello-world)
3. docker中安装Python2.7
4. docker中安装Tensorflow(源:gcr.io/tensorflow/tensorflow)
5. docker中测试Tensorflow安装正确性(跑莺尾花分类模型)
6. 测试/开发/生产环境安装centos7
[7,8可选:如果要把容器迁移到不能联网的环境:]
7. 导出虚拟容器到tensorflow2.tar:sudo docker ps -a 获取 docker containner Id, sudo docker export 0e8dddfb5e05 > tensorflow2.tar
8. 导入虚拟容器到测试/开发/生产环境:sudo docker import tensorflow2.tar tf:v1 ###sudo docker import[OPTIONS] file|URL|- [REPOSITORY[:TAG]]
9. 进入tensorflow容器脚本:
dk_name=`sudodocker ps -a | grep 'Up' | awk '{print $NF}'`
echo$dk_name
if[ "$dk_name" == "" ]
then
echo"no docker is running"
exit
else
echo"get docker $dk_name"
pid=`sudodocker inspect --format "{{ .State.Pid }}" $dk_name`
echo$pid
sudonsenter --target $pid --mount --uts --ipc --net --pid
fi
如果返回“nodocker is running:
sudodocker ps -a 获取containerid,然后sudo docker start $containerId,再执行进入容器的脚本
常见问题
训练效果好,验证效果不好
定位:过拟合
解决方案:
1. 增加效果不好的类别的样本量;
2. 加dropout
3. 检查训练阶段的数据预处理和验证阶段的数据预处理逻辑是否一致。
训练效果不好
定位:
1. 数据质量不高
2. 参数选择不当
3. 网络结构不当
解决方案:
1. 检查每个类别的数据量是否足够,数据分布是否太偏,数据维度是否丰富。
2. 自行调节参数,如优化算法,激活算法等
3. 如果有mini_batch和过抽样,样本要打散
4. 从简单结构开始,逐渐增加复杂度
5. 如果全连接结构效果不好,尝试带空间结构的CNN,和时间结构的RNN/LSTM等自动特征生成模型。