莫烦keras学习自修第三天回归问题
Posted liuzhiqaingxyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了莫烦keras学习自修第三天回归问题相关的知识,希望对你有一定的参考价值。
1. 代码实战
#!/usr/bin/env python #!_*_ coding:UTF-8 _*_ import numpy as np # 这句话不知道是什么意思 np.random.seed(1337) from keras.models import Sequential from keras.layers import Dense import matplotlib.pyplot as plt # 创建一些训练数据 # 生成-1 到 1 之间的float64的200个数的列表 X = np.linspace(-1, 1, 200) # 打乱列表为无序状态 np.random.shuffle(X) # 根据X的数据生成Y,并且系数为0.5, 偏置为0到0.05 Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (200, )) # 使用plt工具画图 plt.scatter(X, Y) plt.show() # 将生成的前面160条数据作为训练数据 X_train, Y_train = X[:160], Y[:160] # 将生成的后面40条数据作为测试数据 X_test, Y_test = X[160:], Y[160:] # 创建一个训练模型 model = Sequential() # 为训练模型添加隐藏层 model.add(Dense(units=1, input_dim=1)) # 为训练模型进行编译,使用均方误差损失函数 model.compile(loss=‘mse‘, optimizer=‘sgd‘) # 开始进行训练, for step in range(301): # 该训练函数每次训练均返回cost损失 cost = model.train_on_batch(X_train, Y_train) if step % 100 == 0: print(‘train cost: ‘, cost) # 测试训练过的模型 # 该批量测试函数返回损失值 cost = model.evaluate(X_test, Y_test, batch_size=40) print(‘test cost:‘, cost) # 打印W和b这些参数 W, b = model.layers[0].get_weights() print(‘Weights=‘, W, ‘ biases=‘, b) # 打印测试值和预测值 Y_pred = model.predict(X_test) # 使用散点图绘制测试值 plt.scatter(X_test, Y_test) # 使用直线图绘制预测值 plt.plot(X_test, Y_pred) plt.show()
结果:
/Users/liudaoqiang/PycharmProjects/numpy/venv/bin/python /Users/liudaoqiang/Project/python_project/keras_day02/regressor.py Using Theano backend. (‘train cost: ‘, array(4.190890312194824, dtype=float32)) (‘train cost: ‘, array(0.10415506362915039, dtype=float32)) (‘train cost: ‘, array(0.011512807570397854, dtype=float32)) (‘train cost: ‘, array(0.004584408365190029, dtype=float32)) 40/40 [==============================] - 0s 5us/step (‘test cost:‘, 0.0053740302100777626) (‘Weights=‘, array([[ 0.56634265]], dtype=float32), ‘ biases=‘, array([ 2.00106311], dtype=float32)) Process finished with exit code 0
以上是关于莫烦keras学习自修第三天回归问题的主要内容,如果未能解决你的问题,请参考以下文章