首页 > 其他分享 >实验10-使用keras完成线性回归

实验10-使用keras完成线性回归

时间:2024-04-27 14:46:12浏览次数:20  
标签:10 plt 训练 keras print test train 线性 model

版本python3.7 tensorflow版本为tensorflow-gpu版本2.6

运行结果:

 代码:

import numpy as np

np.random.seed(1337)
from keras.models import Sequential
from keras.layers import Dense
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt

# 创建数据集
# 在[-1,1]的区间内等间隔创建200个样本数
X = np.linspace(-1, 1, 200)
np.random.shuffle(X)  # 将数据集随机化
# np.random.normal(0, 0.05, (200, ))为输出服从均值为0,标准方差为0.05的200个正太分布数据
Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (200,))  # 假设我们真实模型为:Y=0.5X+2
# 绘制数据集plt.scatter(X, Y)
plt.show()

X_train, Y_train = X[:160], Y[:160]  # 把前160个数据放到训练集
X_test, Y_test = X[160:], Y[160:]  # 把后40个点放到测试集

# 定义一个model,
model = Sequential()  # Keras有两种类型的模型,序贯模型(Sequential)和函数式模型
# 比较常用的是Sequential,它是单输入单输出的
# model.add(Dense(output_dim=1, input_dim=1))
model.add(Dense(units=1, input_shape=(1,)))# 通过add()方法一层层添加模型
# Dense是全连接层,第一层需要定义输入,
# 第二层无需指定输入,一般第二层把第一层的输出作为输入

# 定义完模型就需要训练了,不过训练之前我们需要指定一些训练参数
# 通过compile()方法选择损失函数和优化器
# 这里我们用均方误差作为损失函数,随机梯度下降作为优化方法
model.compile(loss='mse', optimizer='sgd')

# 开始训练
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)

# 测试训练好的模型
print('\nTesting ------------')
cost = model.evaluate(X_test, Y_test, batch_size=40)
print('test cost:', cost)
W, b = model.layers[0].get_weights()  # 查看训练出的网络参数
# 由于我们网络只有一层,且每次训练的输入只有一个,输出只有一个
# 因此第一层训练出Y=WX+B这个模型,其中W,b为训练出的参数
print('Weights=', W, '\nbiases=', b)

# plotting the prediction
Y_pred = model.predict(X_test)
plt.scatter(X_test, Y_test)
plt.plot(X_test, Y_pred)
plt.show()

#使用r2 score评估准确度
pred_acc = r2_score(Y_test, Y_pred)
print('pred_acc',pred_acc)

#保存模型
model.save('keras_linear.h5')

 

标签:10,plt,训练,keras,print,test,train,线性,model
From: https://www.cnblogs.com/daitu66/p/18162025

相关文章

  • 实验11-使用keras完成逻辑回归
    版本python3.7tensorflow版本为tensorflow-gpu版本2.6运行结果:  代码:importnumpyasnpfromkeras.modelsimportSequentialfromkeras.layersimportDense,Dropout,Activation,Flattenimportmatplotlib.pyplotaspltfromsklearnimportdatasets#样本......
  • 实验12-使用keras预训练模型完成猫狗识别
    版本python3.7tensorflow版本为tensorflow-gpu版本2.6运行结果:这里我用Gpu进行加速,训练一回9秒,如果不启用gpu,训练一回会很慢。  代码:#-*-codeing=utf-8-*-#@Time:2022/10/211:44#@Author:程浩#@File:猫狗识别.py#@Software:PyCharmimporttensorflow......
  • Games 101: 旋转矩阵
    旋转矩阵本文主要介绍了旋转矩阵的推导,分为两种方式:旋转坐标旋转坐标轴以下坐标系都是右手坐标系旋转坐标已知坐标点\(A(x_a,y_a)\),旋转\(\theta\)角后变为坐标点\(B(x_b,y_b)\),求解旋转矩阵.\[{\large\begin{align*}\begin{split}x_a&=r_a\cdotcos(\alpha)=......
  • 题解:P10329 [UESTCPC 2024] Add
    Add题意将序列进行一系列的操作,输出对\(a_{1}\)的期望值。题目中操作说的比较明了,再次就不特殊声明了。思路据题意所知,每一个\(n\)应该对应了一个固定的答案。于是我就想到可以打表,就打出了下面的式子。n=1时ans=1n=2时ans=5n=3时ans=14n=4时ans=30n=5时ans=5......
  • 笔记本1050ti跑autoformer模型,环境搭建过程
    ##1、选显卡对应得驱动程序https://www.nvidia.com/Download/index.aspxnotebook是笔记本,下载类型选sd。不更新驱动会报:RuntimeError:TheNVIDIAdriveronyoursystemistooold(foundversion8000).PleaseupdateyourGPUdriverbydownloadingandinstallinganew......
  • 笔记本1050ti运行DLinear模型遇到的问题
    1、windows没法运行shgitbash可以,但我需要在conda环境中,使用sh运行脚本,所以应该在安装conda后,先配环境变量,然后在gitbash窗口中执行condainitbash,就可以用在bash窗口中通过condaactivate进入conda环境了。2、运行sh,报错加载不到模块看报错最后一行上面的模块,pipuninsta......
  • Nessus 10.7 Auto Installer for Ubuntu 22.04 (updated Apr 2024)
    Nessus10.7AutoInstallerforUbuntu22.04(updatedApr2024)发布Nessus试用版自动化安装程序,支持macOSSonoma、RHEL9和Ubuntu22.04请访问原文链接:https://sysin.org/blog/nessus-auto-install-for-ubuntu/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • 17-项目风险管理(8/10 十大管理)
    15.1管理基础15.1.1项目风险概述项目风险是一种不确定的事件或条件,一旦发生,会对项目目标产生某种正面或负面的影响。项目风险既包括对项目目标的威胁,也包括促进项目目标的机会。风险源于所有项目之中的不确定因素。项目在不同阶段会有不同的风险。风险会随着项目的进展而变......
  • 18-项目采购管理(9/10 十大管理)
    16.1管理基础16.1.1协议/采购合同项目采购管理包括从项目团队外部采购或获取所需产品、服务或成果的各个过程。例如合同、订购单、协议备忘录(MOA)和服务水平协议(SLA)。被授权采购项目所需货物、服务的人员可以是项目团队、管理层或组织采购部的成员。因应用领域不同,协议可以是......
  • 19-项目干系人管理(10/10 十大管理)
    17.1管理基础17.1.1管理的重要性每个项目干系人,他们会受到项目积极或消极的影响,或者能对项目施加积极或消极的影响。项目经理和团队管理干系人的能力决定着项目的成败。为提高项目成功的概率,尽早开始识别干系人并引导干系人参与。干系人满意度应作为项目目标加以识别和管理......