如何理解python进阶TensorFlow神经网络拟合线性及非线性函数
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"如何理解python进阶TensorFlow神经网络拟合线性及非线性函数",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何理解pytho
千家信息网最后更新 2025年11月08日如何理解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安全错误
数据库的锁怎样保障安全
网络安全网闸安全通道
从数据库提取同一文件的不同版本
国家网络安全系统分为几级
平鲁区支行网络安全活动
济南奇贝多软件开发有限公司
传云网络技术有限公司总部
实习网络技术员的月度总结怎么写
初学数据库用什么软件
深圳市智付支付子公司软件开发
中兴软件开发面试问题
hive建数据库
热创网络技术有限公司
广西万都互联网科技有限公司
江西省网络安全服务培训
spss数据库的建立
无锡四大开源分布式存储数据库
汽车总线通信网络技术
嘉定区网络技术服务规范设计
网络安全肉鸡是指
非标设计和软件开发
数据库一体机招标
罗湖网络安全定制
串口服务器数据能否进入不同系统
路由器的网络技术
如何只输入服务器的ip
个人网络安全责任书
惠普g7服务器售后
tp连接数据库文件
网络安全备份漫画
大学软件开发好学吗