在Windows平台上搭建基于Keras的Python神经网络环境

1.准备工作

首先确认你的Windows是64位的Windows 7/8/10,其他版本的Windows不建议使用。
在Windows平台上搭建基于Keras的Python神经网络环境_第1张图片

2.安装环境

1.TensorFlow环境

这里介绍通过pip安装TensorFlow的方式
1.下载whl离线安装文件,下载地址:
https://mirrors.tuna.tsinghua.edu.cn/tensorflow
2.这里我们选择Windows的0.9.0版本,CPU版本安装更加简单,所以选择CPU版本
下载地址:
https://mirrors.tuna.tsinghua.edu.cn/tensorflow/windows/cpu/tensorflow-1.3.0rc0-cp36-cp36m-win_amd64.whl
下载之后,进入此文件的目录,打来命令行执行:
pip install tensorflow-1.3.0rc0-cp36-cp36m-win_amd64.whl
执行到最后报错:
在这里插入图片描述
进入python包下找到这个文件并删除,如下图所示:
在Windows平台上搭建基于Keras的Python神经网络环境_第2张图片
删除后,重新执行安装命令,执行成功,如下图所示:
在Windows平台上搭建基于Keras的Python神经网络环境_第3张图片
验证命令如下:
在Windows平台上搭建基于Keras的Python神经网络环境_第4张图片
结果分析:上图中成功导入TensorFlow并且,成功输出“Hello,Tensorflow!”,说明我们安装成功了。

2.keras,h5py,pillow环境

分别执行:
pip3 install keras
pip3 install h5py
pip3 install pillow
即可完成安装

3. 环境测试

安装好keras就可以进行神经网络的设计和训练了,但在本文中我们跳过这个步骤,即假设已经设计好了神经网络的结构,并得到了权重。

keras 内建了许多学术界已经发表的神经网络结构。我们使用2017年6月Google发表的mobilenet作为学习对象。第一次使用mobilenet的时候,keras 会自动下载这个网络的权重,但由于使用Python自身的下载功能,速度较慢。所以比较好的解决方法是使用迅雷等工具下载权重。
在keras作者的github可以得到mobilenet的权重。打开fchollet/deep-learning-models,选择mobilenet_1_0_224_tf.h5进行下载。把得到的文件放在 C:\Users<你的用户名>.keras\models里面。如果这个目录不存在,就自己创建一个。按Win+R,输入cmd并回车(此时cmd所在的目录就是C:\Users<你的用户名>),然后

mkdir .keras
cd .keras
mkdir models

权重准备好之后就可以使用mobilenet进行图像识别了。代码非常简单:

from keras.applications.mobilenet import MobileNet
from keras.preprocessing import image
from keras.applications.mobilenet import preprocess_input, decode_predictions
import numpy as np
import sys

model = MobileNet(weights='imagenet')

img_path = sys.argv[1]
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

preds = model.predict(x)
print('Predicted:', decode_predictions(preds, top=3)[0])

首先创建一个mobilenet对象,它代表了神经网络的结构,并自动的从你刚才下载权重的位置读取权重。然后读入一张图片,转换为神经网络的输入格式(4-D Tensor,-1~1之间的浮点数),然后用神经网络对这个输入数据进行计算,计算结果是一个1000维的向量,通过查表得到这个向量代表何种物体。

笔者的一次运行结果是这样的:
在Windows平台上搭建基于Keras的Python神经网络环境_第5张图片
即,这个神经网络认为该图片有63.8%的概率为斑纹猫,24.9%的概率为埃及猫,9.5的概率为虎猫。

补充:
一开始运行代码报错如下图:
在Windows平台上搭建基于Keras的Python神经网络环境_第6张图片
原因:是因为我安装的keras 版本太高了,keras 2.1.6的softmax没有axis这个参数了,于是,我回退了keras版本:
执行命令
pip install keras==2.1
再次运行程序,就没报错了。

你可能感兴趣的:(在Windows平台上搭建基于Keras的Python神经网络环境)