TensorFlow进阶--实现随机与批量训练

本文探讨了TensorFlow中随机训练与批量训练的差异。随机训练有助于跳出局部最小值,但可能需要更多迭代次数;批量训练则能更快收敛,但会增加计算资源消耗。批量训练的误差曲线更平滑。示例中,通过导入库,创建计算图会话,生成数据,声明占位符和变量,构建模型和优化器,展示了如何在TensorFlow中进行批量训练,并通过绘图对比了训练效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,谈谈随机训练与批量训练

随机训练其随机性可以达到一定脱离局部最小的效果,然而一般需要迭代多次才能够收敛

批量训练能够快速得到最小损失,然而如果批量训练样本数较大,对于计算资源的消耗也会增加

同时由于批量训练具有平滑的效果,因此其训练误差曲线较为平滑

下面给出示例

首先导入库并创建计算图会话

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

#创建计算图会话
sess = tf.Session()

声明批训练的数据个数

#批量大小
batch_size = 20

生成数据并创建占位符和变量

这里仍然采用之前的示例,即输入数据为N(1,0.1),输出为10,模型为Y=AX

#生成数据并创建在占位符和变量A

x_vals = np.random.normal(1,0.1,100)
y_vals = np.repeat(10.,100)

x_data = tf.placeholder(tf.float32,shape=[None,1])
y_target = tf.placeholder(tf.float32,shape=[None,1])

A = tf.Variable(tf.random_normal(shape=[1,1]))

同样创建模型及L2损失函数,并创建优化器对象

增加乘法操作
my_output = tf.matmul(x_data,A)

#增加损失函数

loss = tf.reduce_mean(tf.square(my_output-y_target))

#在运行之前,需要初始化变量
init = tf.initialize_all_variabl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值