Image classifaction with deep learning
在本次的project中我利用NVIDIA DIGITS网页版深度学习框架实现深度神经网络的简单可视化训练和设计,但出现过很多error
1、搭环境问题
我在Ubuntu的系统下进行配置,安装cuda、cudnn、caffe及其相关依赖
错误一:
make all -j8出现错误
/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5
collect2: error: ld returned 1 exit stat
改正方法是更改makefile
将LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf更改为
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
错误二:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
错误原因系统找到的是符号连接而不是文件
错误三:
build_release/lib/libcaffe.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputSt
更改方法为设置环境变量:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH,将/usr/lib/x86_64-linux-gnu/放在最前面
2、DIGITS的使用
A、实验准确度太低:
原因是数据集过少,将数据集进行预处理,进行旋转对称操作,一幅图变4幅
B、创建数据库失败
应用create_lmdb.sh生成train和test两个不可读文件,创建lmdb数据库
C、过拟合问题
采用dropout方法。这个方法在神经网络里面很常用。dropout方法是ImageNet中提出的一种方法,通俗一点讲就是dropout方法在训练的时候让神经元以一定的概率不工作。