个人技术和团队任务
本人在此次团队任务中担任图像识别模型的训练,因此配置深度学习的环境和进行神经网络的设计是理所当然的事。
Anaconda
Anaconda是开源的python 发行版本,包含大量包极其依赖项,可以便捷地进行包的管理
anaconda 常用操作:
查看已有包
conda/pip list
安装包
pip/conda install 《包名》
可指定安装的版本 :pip install 包名=版本号
安装本地包:
pip install <目录>/<文件名>
更新包:
conda upgrade <包名>
pip install -U <包名>
卸载包:
conda remove <包名>
pip uninstall <包名>
spyder
anaconda 自带的编译器spyder
安装theano
环境是win10,64位
安装minGW
MinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不依赖任何第三方C运行时库。
MinGW包括:
1.一套集成编译器,包括C、C++、ADA语言和Fortran语言编译器
2.用于生成Windows二进制文件的GNU工具的(编译器、链接器和档案管理器)
3.用于Windows平台安装和部署MinGW和MSYS的命令行安装器(mingw-get)
4.用于命令行安装器的GUI打包器(mingw-get-inst)
使用命令安装
conda install mingw libpython
配置环境变量:
1.编辑用户变量中的path变量(如果没有就新建一个,一般会有的),在后边追加C:Anaconda;C:AnacondaScripts; 不要漏掉分号,此处因为我的Anaconda的安装目录是C:Anaconda,此处需要根据自己的安装目录填写。
在用户变量中新建变量pythonpath,变量值为C:AnacondaLibsite-packages heano; ,此处就是指明安装的theano的目录是哪,但是现在咱们还没有安装,所以不着急,先写完再说。
2.打开cmd,会看到窗口里边有个路径,我的是C:UsersLocked>,根据自己的路径,找到对应的目录,在该目录下新建一个文本文档.theanorc.txt (注意有两个“.”),编辑它,写入以下内容:
[global]
openmp=False
[blas]
ldflags=
[gcc]
cxxflags=-IC:AnacondaMinGW
其中红体字部分是你安装的Anaconda的路径,一定不要弄错。否则找不到MinGw。
3.最好重启一下电脑。
安装theano
使用之前学过的命令
pip install theano
进度条结束之后进入python环境,输入
import theano
theano.test()
如果没有报错的话,表示安装成功。
****theano可安装GPU加速版本,由于本次没有使用,有需要者自行搜索。
安装keras
keras可基于tensorflow或者theano,本次使用的是基于theano,使用和安装theano相同的方法安装keras,这里就不对述。
修改backend。安装keras之后在命令行的主界面.keras文件(注意有一“.”),修改keras.json文件,将文件内容修改为:
{
"epsilon": 1e-07,
"floatx": "float32",
"image_data_format": "channels_last",
"backend": "theano"
}
使用keras设计一个简单的模型
1.导入包
import keras
...
2.导入数据
label,data = readData(data_dir)
3.生成一个模型
生成一个model
model = Sequential()
layer1-conv1
model.add(Convolution2D(16, 3, 3, border_mode='valid',input_shape=data.shape[-3:]))
model.add(Activation('tanh'))#tanh
layer2-conv2
model.add(Convolution2D(32, 3, 3, border_mode='valid'))
model.add(Activation('tanh'))#tanh
layer3-conv3
model.add(Convolution2D(32, 3, 3, border_mode='valid'))
model.add(Activation('tanh'))#tanh
layer4
model.add(Flatten())
model.add(Dense(128, init='normal'))
model.add(Activation('tanh'))#tanh
layer5-fully connect
model.add(Dense(numClass, init='normal'))
model.add(Activation('softmax'))
sgd = SGD(l2=0.1,lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd,class_mode="categorical")
4.训练模型
利用model.train_on_batch()或者model.fit()