使用keras做线性回归训练记录
训练 记录 回归 线性 Keras 使用
2023-09-11 14:15:47 时间
我们建立一个如下的模型:
数学表达师式是
在这里,我们给定
并且给定一组按照此规律分布的数据,用这组数据进行训练,看出来的网络能否作出准确预测。
数据输入: [[-1.0,2.0],[0.0,1.0],[2.0,3.0],[4.0,0.9]]
数据输出:[15.0,9.0,29.0,16.2]
那么当数据是两组的[4.0,11.0],[5.9,6.7]时候,输出是什么呢?
训练模型:
from tensorflow import keras
import numpy as np
model=keras.Sequential([keras.layers.Dense(units=1, input_shape=[None, 2])])
model.compile(optimizer="sgd",loss="mean_squared_error")
xs=np.array([[-1.0,2.0],[0.0,1.0],[2.0,3.0],[4.0,0.9]],dtype=float)
ys=np.array([15.0,9.0,29.0,16.2],dtype=float)
model.fit(xs,ys, epochs=3000)
model.summary()
训练过程以及网络参数:
可以看到,最后的输出模型LOSS值已经非常非常小了。
预测模式
我们用这个模型预测 [[-1.0,2.0],[0.0,1.0],[2.0,3.0],[4.0,0.9]]的输出
pd=np.array([[4.0,11.0],[5.9,6.7]], dtype=float)
print(pd.shape)
model.predict(pd)
可以看到输出如下:
我们套用上面的公式,实际计算一下准确值
可以看到,预测出来的值还是非常非常接近的。
这种方式到底有什么不同呢?
通常我们解决问题,希望由我们自己去找出规律,然后在由规律去解决问题,但是CNN却相反,我们不需要自己去找出规律,而是由模型自己去训练,得到规律,我们只要结果,一下子把我们从问题中解放了出来。如下图所示:
跑上述模型的环境版本是:
调试方式:
查看层的名称:
print(model.layers[2].name)
获取weights 和 bias
weights, biases = model.layers[0].get_weights()
如上图所是,训练得到的bias和weights和初始设定的2.0,3.0,1.0非常接近。
查看参数形状
训练的时候加入验证集
结束!
相关文章
- Java实现 蓝桥杯VIP 算法训练 判定数字
- Java实现 蓝桥杯VIP 算法训练 摆动序列
- Java实现 蓝桥杯VIP 算法训练 调和数列
- Java实现 蓝桥杯VIP 算法训练 斜率计算
- Java实现 蓝桥杯VIP 算法训练 二元函数
- Java蓝桥杯 算法训练 复数归一化
- 机器学习笔记 - 使用Mask-Rcnn训练自定义数据集
- CV之IC之VGG16:基于Keras框架利用卷积神经网络VGG16算法的迁移技术实现猫狗分类识别(图片数据增强→保存h5模型)案例训练过程记录
- CV之OD之YOLO:深度学习之计算机视觉神经网络tiny-yolo-5clessses训练自己的数据集全程记录
- CV之OD之YOLOv3:深度学习之计算机视觉神经网络Yolov3-5clessses训练自己的数据集全程记录
- ML之FE:在特征工程/数据预处理阶段切分训练集、验证集、测试集的多种场景多种实现方法之详细攻略
- TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录
- Dataset之图片数据增强:基于TF实现图片数据增强(原始的训练图片reshaped_image→数据增强→distorted_image(训练时直接使用))
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-3 算法训练 K好数
- 【华为云技术分享】从软件开发到 AI 领域工程师:模型训练篇
- 一文详解TensorFlow模型迁移及模型训练实操步骤
- 台州学院maximum cow训练记录
- 目标检测00-08:mmdetection(Foveabox为例)-源码无死角解析(1)-训练架构总览
- 〖产品思维训练白宝书 - 核心竞争力篇⑤〗- 产品经理核心竞争力解读之如何培养创造力
- 中职网络安全竞赛训练设备P100-wireshark数据包分析