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函数用法
看一个例子解释用法: TcpServer类的构造函数中定义: acceptor_->setNewConnectionCallback(std::bind(&TcpServer::newConnection, this,std::placeholders::_1, std::placeholders::_2));// 有一个新的客户端的连接,acceptor会执行这…...
Caffenie配合Redis做两级缓存
一、什么是两级缓存 在项目中。一级缓存用Caffeine,二级缓存用Redis,查询数据时首先查本地的Caffeine缓存,没有命中再通过网络去访问Redis缓存,还是没有命中再查数据库。具体流程如下 二、简单的二级缓存实现-v1 目录结构 2…...
MATLAB实现PID参数自动整定
目录 1、项目说明 2、文件说明 1、项目说明 本项目旨在通过 MATLAB 语言实现 PID 参数的自动整定,并设计了一个直观易用的 GUI 界面。该系统特别适用于实验室环境下的 PID 参数自整定任务。整定的核心原则在于优化系统性能,使系统的衰减比尽可能接近理…...
UE5学习笔记21-武器的射击功能
一、创建C类 创建武器子弹的类,创建生产武器子弹的类,创建弹壳的类,生产武器子弹的类的父类是武器的类 创建后如图,ProjectileMyWeapon类(产生子弹的类)继承自weapon类,Projectile(子弹的类),Casing(弹壳声…...
Mamba模型学习笔记
笔记来源:bilibili Transformer 的死穴 Transformer 结构的核心是自注意力机制层,无论是 encoder 还是 decoder,序列数据都先经过位置编码后喂给这个模块。 但是自注意力机制的计算范围仅限于窗口内,而无法直接处理窗口外的元素…...
android kotlin 基础复习 继承 inherit
1、新建文件kt 2、代码: /**用户基类**/ open class Person1(name:String){/**次级构造函数**/constructor(name:String,age:Int):this(name){//初始化println("-------基类次级构造函数---------")println("name:${name},age:${age}")} }/**子…...
读软件设计的要素06概念完整性
1. 概念完整性 1.1. 当概念组合成一个软件时,它们可以同步以便协调行为 1.1.1. 同步可能会消除一个概念的某些行为,但决不会添加与该概念的规范不一致的新行为 1.1.2. 在使用概念设计软件时,即使你没有精确定义同步,至少要说服自…...
Java 每日一刊(第2期):搭建开发环境
文章目录 JVM、JRE、JDKJVM(Java Virtual Machine,Java 虚拟机)JRE(Java Runtime Environment,Java 运行时环境)JDK(Java Development Kit,Java 开发工具包)JVM、JRE、JD…...
探索EasyCVR与AI技术深度融合:视频汇聚平台的新增长点
随着5G、AI、边缘计算、物联网(IoT)、云计算等技术的快速发展,万物互联已经从概念逐渐转变为现实,AIoT(物联网人工智能)的新时代正在加速到来。在这一背景下,视频技术作为信息传输和交互的重要手…...
IBM中国研发部调整:全球化与本土化的新平衡
如何看待IBM中国研发部裁员? 近日,IBM中国宣布撤出在华两大研发中心,引发了IT行业对于跨国公司在华研发战略的广泛讨论。这一决定不仅影响了众多IT从业者的职业发展,也让人思考全球化背景下中国IT产业的竞争力和未来发展方向。面对…...
C++入门基础篇
引言 说到编程语言常常听到的就是C语言C Java 。C语言是面向过程的,C是和Java是面向对象的,那么什么是面向对象呢?什么又是面向过程呢?C是什么?封装、继承、多态是什么?且听我絮絮叨叨。 C入门基础 1.命名…...
Qt QListWidget 代码范例,以及Qt 天坑:setStyleSheet失效问题
一、坑之所在 1.写了StyleSheet的QString并进行了设置 this->setStyleSheet(styleSheet_M);2.注释后,将StyleSheet换到UI form里去,然后又手动清理了UI form里的StyleSheet 重新使用代码设置,此时代码设置失效了 二、根本解决 1.手动从…...
Unity AnimationClip详解(1)
【动画片段】 前文我们介绍了骨骼动画,在Unity中骨骼动画的部分静态数据存储在SkinedMeshRender中,而另一部分动态的关键帧数据就是存储在AnimationClip中的。 关键帧数据来自与FBX、OBJ等动画模型文件,可以在动画导入后的Animation选项卡中…...
在这12种场景下会使Spring事务失效--注意防范
在某些业务场景下,如果一个请求中,需要同事写入多张表的数据,但为了保证操作的原子性(要么同事插入数据成功,要么同事插入失败),例如,当我们创建用户的时候,往往会给用户…...
SOPC:Nios II Processor -> Vectors
Reset Vector——复位向量 Exception Vector——执行向量 两个向量地址都存储着程序 1.Reset Vector 当FPGA进行复位时,FPGA就重新开始执行程序,这时就需要从EPCS中读取程序。由于FPGA的程序存放在EPC…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
