当前位置: 首页 > news >正文

tensorflow-线性回归python入门

目录

读入库

构造数据

建立训练和测试数据

创建第一层到最后一层的神经网络

开始测试

sin函数回归


读入库

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import time

构造数据

X = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
Y = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])

建立训练和测试数据

import sklearn.model_selection as sk
X_train, X_test, Y_train, Y_test =sk.train_test_split(X,Y,test_size=0.2, random_state = 42)

创建第一层到最后一层的神经网络

model = tf.contrib.keras.models.Sequential()
model.add(tf.contrib.keras.layers.Dense(units=1, activation=tf.nn.relu,input_dim=1))
model.summary()
# 開始搭建 model
# mse = mean square error
# sgd = stochastic gradient descent
model.compile(loss='mse',optimizer='sgd',metrics=['accuracy'])model.fit(X_test, Y_test,epochs=4000,batch_size=len(Y_test))

开始测试

print("start testing")

cost = model.evaluate(X_test, Y_test)

print("test cost: {}".format(cost))

weights, biases = model.layers[0].get_weights()

print("Weights = {}, bias = {}".format(weights,biases))

打印测试结果

# 印出測試的結果
Y_pred = model.predict(X_test)
# 畫出 data
plt.scatter(X,Y, label='X,Y')
plt.scatter(X_test, Y_test, label='X_test, Y_test')
plt.scatter(X_test, Y_pred, label='pred')
# 畫出 線
x2 = np.linspace(0,1,100)
print(biases[0])
print(weights[0])y2 =(weights[0]*x2+biases[0])
plt.plot(x2, y2, '-r', label='weights')plt.show()

sin函数回归


np.random.seed(int(time.time())) 生成随机数
num=100  随机数100个
X = np.linspace(-4,4,num)  进行线性等分
np.random.shuffle(X)  打乱
Y = 0.1*np.sin(X)  计算变量

#!/usr/bin/env python
# -*- coding=utf-8 -*-
import tensorflow as tf
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
import time# 製造 data (共200筆)
np.random.seed(int(time.time()))
num=100
X = np.linspace(-4,4,num)
np.random.shuffle(X)
Y = 0.1*np.sin(X)# 建立 trainig 與 testing datax_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=0.1)# 建立 neural network from the first layer to last layermodel = tf.keras.models.Sequential([tf.keras.layers.Dense(units=100, activation=tf.nn.tanh, input_dim=1),tf.keras.layers.Dense(units=100, activation=tf.nn.tanh),tf.keras.layers.Dense(units=1, activation=tf.nn.tanh),
])# 除了第一層以外,定義第二層以上時,不需要定義 input dimension,因為第二層 input 就是第一層的 input# 開始搭建 model
# mse = mean square error
# sgd = stochastic gradient descent
model.compile(loss='mse',optimizer='sgd', metrics=['acc'])# training
print("start training")
for step in range(20000):cost = model.train_on_batch(x_train, y_train)  #if step % 20 == 0:#print("train cost{}".format(cost))W, b = model.layers[0].get_weights()print("step{} Weights = {}, bias = {} train cost{}".format(step,W, b, cost))plt.cla()# 畫出 dataplt.scatter(X, Y)#X_test2=[-1,1]y_pred2 = model.predict(X)  # Y predictplt.scatter(X, y_pred2, color='blue')plt.text(0, -0.05, 'epoch: %d  ,cost=%.2f '% (step,cost[0]), fontdict={'size': 10, 'color': 'red'})plt.pause(0.01)

其他数据训练示例

#!/usr/bin/env python

# -*- coding=utf-8 -*-

import tensorflow as tf

from sklearn.model_selection import train_test_split

import numpy as np

import matplotlib.pyplot as plt

import time

import pandas as pd

from tensorflow.keras.datasets import boston_housing

import matplotlib.pyplot as plt

(x_train, y_train), (x_test, y_test) = boston_housing.load_data()

print(x_train.shape)

print(y_train.shape)

classes = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT']

data = pd.DataFrame(x_train, columns=classes)

print(data.head())

data['MEDV'] = pd.Series(data=y_train)

print(data.head())

print(data.describe())  # get some basic stats on the dataset

import seaborn as sns

from sklearn import preprocessing

scaler = preprocessing.MinMaxScaler()

x_train = scaler.fit_transform(x_train)

x_test = scaler.fit_transform(x_test)

model =tf.keras.models.Sequential()

model.add(tf.keras.layers.Dense(320, activation='relu', input_shape=[x_train.shape[1]]))

model.add(tf.keras.layers.Dense(640, activation='relu'))

model.add(tf.keras.layers.Dense(640, activation='relu'))

model.add(tf.keras.layers.Dense(1))

try:

    with open('model2.h5', 'r') as load_weights:

        # 讀取模型權重

        model.load_weights("model2.h5")

except IOError:

    print("File not exists")

learning_rate = 0.0001

opt1 = tf.keras.optimizers.Nadam(lr=learning_rate)

model.compile(loss='mse', optimizer=opt1, metrics=['mae'])

history1 = []

for step in range(40000):

    cost = model.train_on_batch(x_train, y_train)

    if step % 20 == 0:

        print("step{}   train cost{}".format(step, cost))

        # 保存模型架構

        with open("model2.json", "w") as json_file:

            json_file.write(model.to_json())

        # 保存模型權重

        model.save_weights("model2.h5")

# testing

print("start testing")

cost = model.evaluate(x_test, y_test)

print("test cost: {}".format(cost))

Y_pred2 = model.predict(x_test)  # Y predict

print(Y_pred2[:10])

print(y_test[:10])


 

相关文章:

tensorflow-线性回归python入门

目录 读入库 构造数据 建立训练和测试数据 创建第一层到最后一层的神经网络 开始测试 sin函数回归 读入库 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import time 构造数据 X np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, …...

VSCode学习笔记

1. 快捷键 KeyDescriptionPlatformF1打开命令面板(Command Palette)Win10Shift Delete剪切当前光标所在的代码行Win10 2. 文件 2.1 在文件列表中定位当前文件 操作路径:右键单击文件名 ⇒ 在右键菜单中点击 【Reveal in Explorer View】...

【Canvas与艺术】菊花孔雀螺旋

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>菊花孔雀螺旋</title><style type"text/css">…...

circuitjs 普通开关和按钮开关

circuitjs 各类开关中最基本的有 (普通)开关 和 按钮开关(瞬时开关). 添加 在菜单 “绘制–无源元件–添加开关” 下可以添加一个普通开关.在菜单 “绘制–无源元件–添加按钮开关” 下可以添加一个按钮开关. 两者在缺省外观上没有什么区别, 如上, 左边是普通开关, 右边是按钮…...

客户端绑定本地端口与服务器建立连接的详细实现

客户端绑定本地端口与服务器建立连接的详细实现 一、网络编程基础1.1 TCP/IP协议1.2 套接字(Socket)1.3 客户端与服务器模型二、客户端程序的设计2.1 需求分析2.2 流程设计三、具体代码实现3.1 伪代码3.2 C代码实现四、代码详解4.1 初始化套接字库4.2 创建套接字4.3 绑定本地…...

C++ std::bind函数用法

看一个例子解释用法&#xff1a; TcpServer类的构造函数中定义&#xff1a; acceptor_->setNewConnectionCallback(std::bind(&TcpServer::newConnection, this,std::placeholders::_1, std::placeholders::_2));// 有一个新的客户端的连接&#xff0c;acceptor会执行这…...

Caffenie配合Redis做两级缓存

一、什么是两级缓存 在项目中。一级缓存用Caffeine&#xff0c;二级缓存用Redis&#xff0c;查询数据时首先查本地的Caffeine缓存&#xff0c;没有命中再通过网络去访问Redis缓存&#xff0c;还是没有命中再查数据库。具体流程如下 二、简单的二级缓存实现-v1 目录结构 2…...

MATLAB实现PID参数自动整定

目录 1、项目说明 2、文件说明 1、项目说明 本项目旨在通过 MATLAB 语言实现 PID 参数的自动整定&#xff0c;并设计了一个直观易用的 GUI 界面。该系统特别适用于实验室环境下的 PID 参数自整定任务。整定的核心原则在于优化系统性能&#xff0c;使系统的衰减比尽可能接近理…...

UE5学习笔记21-武器的射击功能

一、创建C类 创建武器子弹的类&#xff0c;创建生产武器子弹的类&#xff0c;创建弹壳的类&#xff0c;生产武器子弹的类的父类是武器的类 创建后如图&#xff0c;ProjectileMyWeapon类(产生子弹的类)继承自weapon类&#xff0c;Projectile(子弹的类)&#xff0c;Casing(弹壳声…...

Mamba模型学习笔记

笔记来源&#xff1a;bilibili Transformer 的死穴 Transformer 结构的核心是自注意力机制层&#xff0c;无论是 encoder 还是 decoder&#xff0c;序列数据都先经过位置编码后喂给这个模块。 但是自注意力机制的计算范围仅限于窗口内&#xff0c;而无法直接处理窗口外的元素…...

android kotlin 基础复习 继承 inherit

1、新建文件kt 2、代码&#xff1a; /**用户基类**/ open class Person1(name:String){/**次级构造函数**/constructor(name:String,age:Int):this(name){//初始化println("-------基类次级构造函数---------")println("name:${name},age:${age}")} }/**子…...

读软件设计的要素06概念完整性

1. 概念完整性 1.1. 当概念组合成一个软件时&#xff0c;它们可以同步以便协调行为 1.1.1. 同步可能会消除一个概念的某些行为&#xff0c;但决不会添加与该概念的规范不一致的新行为 1.1.2. 在使用概念设计软件时&#xff0c;即使你没有精确定义同步&#xff0c;至少要说服自…...

Java 每日一刊(第2期):搭建开发环境

文章目录 JVM、JRE、JDKJVM&#xff08;Java Virtual Machine&#xff0c;Java 虚拟机&#xff09;JRE&#xff08;Java Runtime Environment&#xff0c;Java 运行时环境&#xff09;JDK&#xff08;Java Development Kit&#xff0c;Java 开发工具包&#xff09;JVM、JRE、JD…...

探索EasyCVR与AI技术深度融合:视频汇聚平台的新增长点

随着5G、AI、边缘计算、物联网&#xff08;IoT&#xff09;、云计算等技术的快速发展&#xff0c;万物互联已经从概念逐渐转变为现实&#xff0c;AIoT&#xff08;物联网人工智能&#xff09;的新时代正在加速到来。在这一背景下&#xff0c;视频技术作为信息传输和交互的重要手…...

IBM中国研发部调整:全球化与本土化的新平衡

如何看待IBM中国研发部裁员&#xff1f; 近日&#xff0c;IBM中国宣布撤出在华两大研发中心&#xff0c;引发了IT行业对于跨国公司在华研发战略的广泛讨论。这一决定不仅影响了众多IT从业者的职业发展&#xff0c;也让人思考全球化背景下中国IT产业的竞争力和未来发展方向。面对…...

C++入门基础篇

引言 说到编程语言常常听到的就是C语言C Java 。C语言是面向过程的&#xff0c;C是和Java是面向对象的&#xff0c;那么什么是面向对象呢&#xff1f;什么又是面向过程呢&#xff1f;C是什么&#xff1f;封装、继承、多态是什么&#xff1f;且听我絮絮叨叨。 C入门基础 1.命名…...

Qt QListWidget 代码范例,以及Qt 天坑:setStyleSheet失效问题

一、坑之所在 1.写了StyleSheet的QString并进行了设置 this->setStyleSheet(styleSheet_M);2.注释后&#xff0c;将StyleSheet换到UI form里去&#xff0c;然后又手动清理了UI form里的StyleSheet 重新使用代码设置&#xff0c;此时代码设置失效了 二、根本解决 1.手动从…...

Unity AnimationClip详解(1)

【动画片段】 前文我们介绍了骨骼动画&#xff0c;在Unity中骨骼动画的部分静态数据存储在SkinedMeshRender中&#xff0c;而另一部分动态的关键帧数据就是存储在AnimationClip中的。 关键帧数据来自与FBX、OBJ等动画模型文件&#xff0c;可以在动画导入后的Animation选项卡中…...

在这12种场景下会使Spring事务失效--注意防范

在某些业务场景下&#xff0c;如果一个请求中&#xff0c;需要同事写入多张表的数据&#xff0c;但为了保证操作的原子性&#xff08;要么同事插入数据成功&#xff0c;要么同事插入失败&#xff09;&#xff0c;例如&#xff0c;当我们创建用户的时候&#xff0c;往往会给用户…...

SOPC:Nios II Processor -> Vectors

Reset Vector——复位向量 Exception Vector——执行向量 两个向量地址都存储着程序 1.Reset Vector 当FPGA进行复位时&#xff0c;FPGA就重新开始执行程序&#xff0c;这时就需要从EPCS中读取程序。由于FPGA的程序存放在EPC…...

golang学习笔记11——Go 语言的并发与同步实现详解

推荐学习文档 基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学习笔记04——如何真正写好Golang代码&…...

关于汽车加油是加200还是加满的思考

车子快开了1万公里了&#xff0c;每个月保险会送一个200-15的加油优惠券&#xff0c;所以之前一直是每次加200的习惯&#xff0c; 最近突然觉得经常去加油很麻烦&#xff0c;而且很浪费时间&#xff0c; 需要重新评估一下&#xff0c; 一次加200 or 一次加300 or 一次加满&am…...

C# 去掉字符串最后一个字符的5种方法

C# 去掉字符串最后一个字符的 5 种方法 &#xff08;1&#xff09;Substring string original "Hello!"; string result original.Substring(0, original.Length - 1); Console.WriteLine(result); // 输出: Hello &#xff08;2&#xff09;Remove string o…...

[Redis] Redis中的String类型

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

Transiting from CUDA to HIP(三)

一、Workarounds 1. memcpyToSymbol 在 HIP (Heterogeneous-compute Interface for Portability) 中&#xff0c;hipMemcpyToSymbol 函数用于将数据从主机内存复制到设备上的全局内存或常量内存中&#xff0c;这样可以在设备端的内核中访问这些数据。这个功能特别有用&#x…...

基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统

系统展示 用户界面 管理员界面 系统背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域的鸿沟&#xff0c;信息的传播速度…...

游戏的3C,Al

在游戏开发中&#xff0c;“3C”通常指的是三个重要的组成部分&#xff1a;Character&#xff08;角色&#xff09;、Camera&#xff08;摄像机&#xff09;和Control&#xff08;控制&#xff09;。这三者对于创建沉浸式和流畅的游戏体验至关重要。而AI&#xff08;人工智能&a…...

深度学习基础案例4--运用动态学习率构建CNN卷积神经网络实现的运动鞋识别(测试集的准确率84%)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 前几天一直很忙&#xff0c;一直在数学建模中&#xff0c;没有来得及更新&#xff0c;接下来将恢复正常这一次的案例很有意思&#xff1a;在学习动态调整…...

tekton pipeline workspaces

tekton pipeline workspace是一种为执行中的管道及其任务提供可用的共享卷的方法。 在pipeline中定义worksapce作为共享卷传递给相关的task。在tekton中定义workspace的用途有以下几点: 存储输入和/或输出在task之间共享数据secret认证的挂载点ConfigMap中保存的配置的挂载点…...

[git操作] git创建仓库上传github报错

操作流程如下 使用 git init使用 git remote add origin 项目ssh链接git add . 报错如下 Bus error (core dumped)然后执行任何别的操作都会报错&#xff1a; fatal: Unable to create path .. /.git/index.lock: File exists.Another git process seems to be running in …...