1、准备环境,探索数据

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt # 创建数据集
rng = np.random.RandomState(27)
X = np.linspace(-3, 5, 300)
rng.shuffle(X) # 将数据集随机化
y = 0.5 * X + 1 + np.random.normal(0, 0.05, 300) # 假设真实模型为:y = 0.5X + 1 # 绘制数据集
plt.scatter(X, y, s=0.5)
plt.show()

2、准备数据训练模型

# 划分训练集和测试集
X_train, y_train = X[:400], y[:400]
X_test, y_test = X[-100:], y[-100:] # 定义模型
model = Sequential () # 用 Keras 序贯模型(Sequential)定义一个单输入单输出的模型 model
model.add(Dense(output_dim=1, input_dim=1)) # 通过 add()方法一层, Dense 是全连接层,第一层需要定义输入 # 设置模型参数
model.compile(loss='mse', optimizer='sgd') # 通过compile()方法选择损失函数(均方误差)和 优化器(随机梯度下降) # 开始训练
print('Training ==========')
for step in range(301):
cost = model.train_on_batch(X_train, y_train) # Keras 的 train_on_batch() 函数训练模型
if step % 100 == 0:
print('train cost: ', cost)

3、测试训练好的模型

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) # 由于网络只有一层,且每次训练的输入和输出只有一个节点,因此第一层训练出 y=WX+b 的模型,其中 W,b 为训练出的参数

最终的测试 cost 为: 0.0026768923737108706

4、可视化测试结果

y_pred = model.predict(X_test)  # 用测试集进行预测
plt.scatter(X_test, y_test, s=4) # 绘制测试点图
plt.plot(X_test, y_pred, lw=0.7) # 绘制回归直线
plt.show()

。。。

最新文章

  1. 【IOS】模仿"抽屉新热榜"动态启动页YFSplashScreen
  2. API,框架,组件
  3. linux下U盘文件只读的解决办法
  4. select document library from certain list 分类: Sharepoint 2015-07-05 07:52 6人阅读 评论(0) 收藏
  5. 用DotNetBar设计的 Gradient Buttons 漂亮按钮
  6. 导入module
  7. [AX2012]发送广播邮件
  8. 透透彻彻IoC(你没有理由不懂!)
  9. wpf前端设计
  10. 戴文的Linux内核专题:02源代码
  11. Weinre 远程调试移动端页面
  12. bootstrapValidator 使用(包含入门demo,常用方法,以及常用的规则)
  13. 关于string.h中字符串的操作
  14. Jenkins 学习笔记
  15. 使用Docker搭建GitLab
  16. 关于pom.xml文件中引入net.sf.json-lib出错问题
  17. luogu P2144 [FJOI2007]轮状病毒
  18. c# Session写入读取操作
  19. chrome浏览器的SwitchyOmega插件使用方法
  20. hdu2973-YAPTCHA-(欧拉筛+威尔逊定理+前缀和)

热门文章

  1. sqler 2.2 发布了,支持定时任务以及触发器
  2. Linux性能优化实战学习笔记:第二十四讲
  3. Spring Cloud组件使用/配置小记
  4. 喜欢去知乎炸鱼?用python吧
  5. C# HTTP系列10 form表单的enctype属性
  6. VUE引入jq bootstrap 之终极解决方案(测试)
  7. 运行带参数的python脚本
  8. Go - chan 通道
  9. Prometheus K8S部署
  10. C# ??(两个问号)的表达式使用详解