【实战演练】机器学习系列02-安装tensorflow与keras搭建线性回归神经网络

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()

001.png

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()

002.png

经过线性回归结合梯度下降算法后,神经网络自动将生成的散点数据,拟合成为一条直线。

猜你喜欢

转载自blog.51cto.com/14423403/2419951
今日推荐