keras是一个深度学习的框架,可以快速地搭建神经网络并且进行巡检与测试,是一个可以快速入门神经网络的软件。
使用keras前,需要先安装tensorflow。
1、安装tensorflow
先更新pip,pip与linux的yum差不多,如果源不够新,可能安装软件的时候会导致依赖关系不全,安装软件失败。
管理员身份运行cmd窗口
pip install msgpack python –m pip install –upgrade pip pip install -U --ignore-installed wrapt pip install --upgrade tensorflow pip install tensorflow
2、安装keras
pip install keras
3、搭建线性回归神经网络
使用jupyter notebook运行如下代码尝试。
3.1生成数据
import numpy as np np.random.seed(1337) from keras.models import Sequential #采用一层一层的神经网络 from keras.layers import Dense #神经网络神经元全连接 import matplotlib.pyplot as plt #图形库
# 生成数据 X = np.linspace(-1, 1, 200) #在返回(-1, 1)范围内的等差序列 np.random.shuffle(X) # 打乱顺序 Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (200, )) #生成Y并添加噪声 # plot plt.scatter(X, Y) plt.show()
3.2指定训练集与测试集
X_train, Y_train = X[:160], Y[:160] # 前160组数据为训练数据集 X_test, Y_test = X[160:], Y[160:] #后40组数据为测试数据集
3.3构建神经网络
model = Sequential() model.add(Dense(input_dim=1, units=1)) # 选定loss函数和优化器 model.compile(loss='mse', optimizer='sgd')
这里的loss与optimizer有很多不同的可选,这些不同的函数,会采用不同的算法,导致我们模型学习的快慢,以及准确率。
3.4训练模型
print('Training -----------') for step in range(501): cost = model.train_on_batch(X_train, Y_train) if step % 50 == 0: print("After %d trainings, the cost: %f" % (step, cost))
3.5测试模型
print('\nTesting ------------') cost = model.evaluate(X_test, Y_test, batch_size=40) print('test cost:', cost) W, b = model.layers[0].get_weights() print('Weights=', W, '\nbiases=', b)
3.6绘制结果
Y_pred = model.predict(X_test) plt.scatter(X_test, Y_test) plt.plot(X_test, Y_pred) plt.show()
经过线性回归结合梯度下降算法后,神经网络自动将生成的散点数据,拟合成为一条直线。