Resources
代码来自github,这个是keras快速搭建的版本,并非作者的源码,但是已经实现了论文中的所有方法并测试得到了良好的准确率。
paper:arXiv:FractalNet: Ultra-Deep Neural Networks without Residuals
环境配置
Windows10环境下,安装以下工具
Miniconda3-4.2.12
这是anaconda 的精简版本(不想装那么多包),而选择这个时间的版本是因为tensorflow只支持python3.5.x,再往后的版本就是支持python3.6了。
下载完成后的操作参考 清华数据源,更新了镜像,以提高下载速度,并顺手添加了额外几个源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
但就算如此,也会遇到HTTPERROR的情况,说找不到这个网址,原因是因为.condarc文件中这个网址多了几个引号,如下
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- '''https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'''
- defaults
ssl_verify: true
show_channel_urls: true
解决方案是删去即可,如下:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
ssl_verify: true
show_channel_urls: true
创建neuralnets环境
参照stackoverflow创建了一个neuralnets环境专门用于深度学习实验,打开anaconda prompt命令如下:
C:\conda create --name neuralnets python=3.5
按照要求输入y,以安装必要的内容
C:\activate neuralnets
在激活环境以后,安装必要的包
(neuralnets) C:\conda install theano
(neuralnets) C:\conda install mingw libpython
(neuralnets) C:\pip install tensorflow
(neuralnets) C:\pip install keras
按照这个安装顺序安装成功,而后测试
(neuralnets) C:\python -c "from keras import backend; print(backend._BACKEND)"
不会报错就说明已经成功。
keras可视化工具
但是我们会发现直接对代码进行测试会发现安装了keras还会报错
ImportError: No module named 'keras.utils.visualize_util'
原因是缺少可视化包,参考博客,
为运行程序安装必要的keras可视化包。
pip install graphviz
而后去官网下载graphvic2.38下载.msi版本安装完成后,将Graphvix2.38/bin加入path中,在anaconda prompt中输入
pip install pydot
pip install pydotplus
pip install pydot_ng
不用在意博客中提到的版本问题,因为keras中已经修正了这个包,也就是说我们待会还是要改代码,因为即keras.utils.visualize_util 了,改成了keras.utils.vis_utils了,同时plot包也改成了plot_model,这里参考了另一个博客。安装完环境以后,重启anaconda prompt。
使用上面博客中的测试
from keras.models import Sequential
from keras.layers import LSTM, Dense
#这一行新加的,用于导入绘图包
from keras.utils.vis_utils import plot_model
import numpy as np
data_dim = 16
timesteps = 8
num_classes = 10
# expected input data shape: (batch_size, timesteps, data_dim)
model = Sequential()
model.add(LSTM(32, return_sequences=True,
input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 32
model.add(LSTM(32, return_sequences=True)) # returns a sequence of vectors of dimension 32
model.add(LSTM(32)) # return a single vector of dimension 32
model.add(Dense(10, activation='softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
# Generate dummy training data
x_train = np.random.random((1000, timesteps, data_dim))
y_train = np.random.random((1000, num_classes))
# Generate dummy validation data
x_val = np.random.random((100, timesteps, data_dim))
y_val = np.random.random((100, num_classes))
model.fit(x_train, y_train,
batch_size=64, epochs=1,
validation_data=(x_val, y_val))
#这一行新加的,用于绘图
plot_model(model, to_file='model1.png',show_shapes=True)
没有错误,在文件夹中会找到输出的图片
model1.png-23.3kB
说明keras安装成功。
Test
观察代码,会发现数据集已经被整合到了代码中,keras内部将自行整合并下载数据集进行试验。同时,根据刚才的发现,要修改代码,将三个文件进行修改
from keras.utils.visulaze_util import plot
改成
from keras.utils.vis_utils import plot_model
以及后面的plot改成plot_model,然后就可以跑了。
网友评论