如何理解python进阶TensorFlow神经网络拟合线性及非线性函数
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容主要讲解"如何理解python进阶TensorFlow神经网络拟合线性及非线性函数",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何理解pytho
千家信息网最后更新 2025年01月31日如何理解python进阶TensorFlow神经网络拟合线性及非线性函数
本篇内容主要讲解"如何理解python进阶TensorFlow神经网络拟合线性及非线性函数",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何理解python进阶TensorFlow神经网络拟合线性及非线性函数"吧!
目录
一、拟合线性函数
生成随机坐标
神经网络拟合
代码
二、拟合非线性函数
生成二次随机点
神经网络拟合
代码
一、拟合线性函数
学习率0.03,训练1000次:
学习率0.05,训练1000次:
学习率0.1,训练1000次:
可以发现,学习率为0.05时的训练效果是最好的。
生成随机坐标
1、生成x坐标
2、生成随机干扰
3、计算得到y坐标
4、画点
# 生成随机点def Produce_Random_Data(): global x_data, y_data # 生成x坐标 x_data = np.random.rand(100) # 生成随机干扰 noise = np.random.normal(0, 0.01, x_data.shape) # 均值 标准差 输出的形状 # 计算y坐标 y_data = 0.2 * x_data + 0.3 + noise # 画点 plt.scatter(x_data, y_data)
神经网络拟合
1、创建神经网络
2、设置优化器与损失函数
3、训练(根据已有数据)
4、预测(给定横坐标,预测纵坐标)
# 创建神经网络(训练及预测)def Neural_Network(): # 1 创建神经网络 model = tf.keras.Sequential() # 为神经网络添加层 model.add(tf.keras.layers.Dense(units=1, input_dim=1))# 隐藏层 神经元个数 输入神经元个数 # 2 设置优化器与损失函数 model.compile(optimizer=SGD(0.05), loss='mse')# 优化器 学习率0.05 损失函数# SGD:随机梯度下降法# mse:均方误差 # 3 训练 for i in range(1000): # 训练数据并返回损失 loss = model.train_on_batch(x_data, y_data) # print(loss) # 4 预测 y_pred = model.predict(x_data) # 5 显示预测结果(拟合线) plt.plot(x_data, y_pred, 'r-', lw=3) #lw:线条粗细
代码
# 拟合线性函数import osos.environ['TF_CPP_MIN_LOG_LEVEL']='2'import numpy as npimport matplotlib.pyplot as pltimport tensorflow as tffrom tensorflow.keras.optimizers import SGD # 生成随机点def Produce_Random_Data(): global x_data, y_data # 生成x坐标 x_data = np.random.rand(100) # 生成随机干扰 noise = np.random.normal(0, 0.01, x_data.shape) # 均值 标准差 输出的形状 # 计算y坐标 y_data = 0.2 * x_data + 0.3 + noise # 画点 plt.scatter(x_data, y_data) # 创建神经网络(训练及预测)def Neural_Network(): # 1 创建神经网络 model = tf.keras.Sequential() # 为神经网络添加层 model.add(tf.keras.layers.Dense(units=1, input_dim=1))# 隐藏层 神经元个数 输入神经元个数 # 2 设置优化器与损失函数 model.compile(optimizer=SGD(0.05), loss='mse')# 优化器 学习率0.05 损失函数# SGD:随机梯度下降法# mse:均方误差 # 3 训练 for i in range(1000): # 训练数据并返回损失 loss = model.train_on_batch(x_data, y_data) # print(loss) # 4 预测 y_pred = model.predict(x_data) # 5 显示预测结果(拟合线) plt.plot(x_data, y_pred, 'r-', lw=3) #lw:线条粗细 # 1、生成随机点Produce_Random_Data() # 2、神经网络训练与预测Neural_Network() plt.show()
二、拟合非线性函数
第一层10个神经元:
第一层5个神经元:
我感觉第一层5个神经元反而训练效果比10个的好。。。
生成二次随机点
步骤:
1、生成x坐标
2、生成随机干扰
3、计算y坐标
4、画散点图
# 生成随机点def Produce_Random_Data(): global x_data, y_data # 生成x坐标 x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis] # 增加一个维度 # 生成噪声 noise = np.random.normal(0, 0.02, x_data.shape) # 均值 方差 # 计算y坐标 y_data = np.square(x_data) + noise # 画散点图 plt.scatter(x_data, y_data)
神经网络拟合
步骤:
1、创建神经网络
2、设置优化器及损失函数
3、训练(根据已有数据)
4、预测(给定横坐标,预测纵坐标)
5、画图
# 神经网络拟合(训练及预测)def Neural_Network(): # 1 创建神经网络 model = tf.keras.Sequential() # 添加层 # 注:input_dim(输入神经元个数)只需要在输入层重视设置,后面的网络可以自动推断出该层的对应输入 model.add(tf.keras.layers.Dense(units=5, input_dim=1, activation='tanh'))# 神经元个数 输入神经元个数 激活函数 model.add(tf.keras.layers.Dense(units=1, activation='tanh')) # 2 设置优化器和损失函数 model.compile(optimizer=SGD(0.3), loss='mse')# 优化器 学习率 损失函数(均方误差) # 3 训练 for i in range(3000): # 训练一次数据,返回loss loss = model.train_on_batch(x_data, y_data) # 4 预测 y_pred = model.predict(x_data) # 5 画图 plt.plot(x_data, y_pred, 'r-', lw=5)
代码
# 拟合非线性函数import osos.environ['TF_CPP_MIN_LOG_LEVEL']='2'import numpy as npimport matplotlib.pyplot as pltimport tensorflow as tffrom tensorflow.keras.optimizers import SGD # 生成随机点def Produce_Random_Data(): global x_data, y_data # 生成x坐标 x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis] # 增加一个维度 # 生成噪声 noise = np.random.normal(0, 0.02, x_data.shape) # 均值 方差 # 计算y坐标 y_data = np.square(x_data) + noise # 画散点图 plt.scatter(x_data, y_data) # 神经网络拟合(训练及预测)def Neural_Network(): # 1 创建神经网络 model = tf.keras.Sequential() # 添加层 # 注:input_dim(输入神经元个数)只需要在输入层重视设置,后面的网络可以自动推断出该层的对应输入 model.add(tf.keras.layers.Dense(units=5, input_dim=1, activation='tanh'))# 神经元个数 输入神经元个数 激活函数 model.add(tf.keras.layers.Dense(units=1, activation='tanh')) # 输出神经元个数 # 2 设置优化器和损失函数 model.compile(optimizer=SGD(0.3), loss='mse')# 优化器 学习率 损失函数(均方误差) # 3 训练 for i in range(3000): # 训练一次数据,返回loss loss = model.train_on_batch(x_data, y_data) # 4 预测 y_pred = model.predict(x_data) # 5 画图 plt.plot(x_data, y_pred, 'r-', lw=5)# 1、生成随机点Produce_Random_Data() # 2、神经网络训练与预测Neural_Network() plt.show()
到此,相信大家对"如何理解python进阶TensorFlow神经网络拟合线性及非线性函数"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
神经
网络
生成
函数
神经网络
训练
坐标
神经元
损失
个数
学习
输入
线性
非线性
数据
代码
均值
误差
干扰
进阶
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器安全证书没生效
福州美美软件开发售后服务承诺
搜索儿童网络安全手抄报简单
中国影响力人物数据库靠谱吗
荣耀科技软件开发
天源迪科网络安全
三十五岁能干网络安全吗
中文数据库的检索与应用论文
网络安全审查办法官方英文版
软件开发电脑笔记本推荐
网络安全技能大赛题目需要的软件
激斗超梦境目前有几个服务器
数据库如何导数据
山东政务软件开发定制
非人学院进不了服务器怎么办
公司网络安全毕设
边缘网络技术有意义吗
linux 服务器管理员教程
挂机软件开发难吗
服务器可以查看客户机浏览内容吗
湖南郴州学电脑软件开发学费多少
数据库原理及应用的试题
计算机网络技术基础体温怀孕
梦幻西游剑会怎么返回服务器
网络安全可以分为几级
辽宁联通服务器ip地址虚拟主机
app网页软件开发
天空之城服务器
数据库系统 技术指标
互联网科技创新模式