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

keras是一个深度学习的框架,能够快速地搭建神经网络而且进行巡检与测试,是一个能够快速入门神经网络的软件。
python

使用keras前,须要先安装tensorflow。linux


一、安装tensorflow算法

先更新pip,pip与linux的yum差很少,若是源不够新,可能安装软件的时候会致使依赖关系不全,安装软件失败。bash

管理员身份运行cmd窗口网络

pip install msgpack
python –m pip install –upgrade pip
pip install -U --ignore-installed wrapt
pip install --upgrade tensorflow
pip install tensorflow


二、安装keras框架

pip install kerasdom


三、搭建线性回归神经网络ide

使用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

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

相关文章
相关标签/搜索