tf.train.XXX与train有关的函数

tf.train.XXX与train有关的函数


tf.train.get_or_create_global_step()

  • 这个函数主要用于返回或者创建(如果有必要的话)一个全局步数的tensor。参数只有一个,就是图,如果没有指定那么就是默认的图。

tf.trainable_variables()

  • 返回所有trainable=True的变量。
  • 当我们在声明变量Variable()时传入trainable=TrueVariable()构造函数会自动添加新的变量到图中的集合GraphKeys.TRAINABLE_VARIABLES,这个函数实质上就是返回这个集合中的变量。

tensorflow.python.training.moving_averages.assign_moving_average

这个函数的参数如下:

def assign_moving_average(variable, value, decay, zero_debias=True, name=None):

对于variable的滑动平均更新为: variable=variabledecay+value(1decay) v a r i a b l e = v a r i a b l e ∗ d e c a y + v a l u e ∗ ( 1 − d e c a y )
下面是一个简单的例子(可以看出variable是变量,而value是常量),这个函数主要应用于batch_normalization

def testAssignMovingAverage(self):
  with self.test_session():
    var = tf.Variable([10.0, 11.0])
    val = tf.constant([1.0, 2.0], tf.float32)
    decay = 0.25
    assign = moving_averages.assign_moving_average(var, val, decay)
    tf.global_variables_initializer().run()
    self.assertAllClose([10.0, 11.0], var.eval())
    assign.op.run()
    self.assertAllClose([10.0 * 0.25 + 1.0 * (1.0 - 0.25),
                         11.0 * 0.25 + 2.0 * (1.0 - 0.25)],
                        var.eval())
在 TensorFlow ,`tf.train.Saver` 是用于保存和恢复模型参数的类。它可以将模型的变量保存到一个二进制的 checkpoint 文件,也可以从 checkpoint 文件恢复模型的变量。 `tf.train.Saver` 的用法如下: ```python saver = tf.train.Saver(var_list=None, max_to_keep=5, keep_checkpoint_every_n_hours=10000.0, name=None, restore_sequentially=False, saver_def=None, builder=None, defer_build=False, allow_empty=False, sharded=False, write_version=tf.train.SaverDef.V2, pad_step_number=False, save_relative_paths=False, filename=None) ``` 其,`var_list` 参数指定需要保存或恢复的变量列表,如果不指定,则默认保存或恢复所有变量。`max_to_keep` 参数指定最多保存的 checkpoint 文件数量,`keep_checkpoint_every_n_hours` 参数指定保存 checkpoint 文件的时间间隔,`name` 参数指定 saver 的名称。 保存模型的变量: ```python import tensorflow as tf # 创建计算图 x = tf.placeholder(tf.float32, shape=[None, 784]) y = tf.placeholder(tf.float32, shape=[None, 10]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) logits = tf.matmul(x, W) + b loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=logits)) train_op = tf.train.GradientDescentOptimizer(0.5).minimize(loss) # 训练模型 with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for i in range(1000): batch_xs, batch_ys = ... sess.run(train_op, feed_dict={x: batch_xs, y: batch_ys}) # 保存模型参数 saver = tf.train.Saver() saver.save(sess, './model.ckpt') ``` 在这个例子,我们创建了一个包含一个全连接层的简单神经网络,并使用梯度下降法训练模型。在训练完成后,我们调用 `tf.train.Saver` 类的 `save` 方法将模型的参数保存到文件 `'./model.ckpt'` 。 恢复模型的变量: ```python import tensorflow as tf # 创建计算图 x = tf.placeholder(tf.float32, shape=[None, 784]) y = tf.placeholder(tf.float32, shape=[None, 10]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) logits = tf.matmul(x, W) + b loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=logits)) train_op = tf.train.GradientDescentOptimizer(0.5).minimize(loss) # 恢复模型参数 saver = tf.train.Saver() with tf.Session() as sess: saver.restore(sess, './model.ckpt') # 使用模型进行预测 test_x, test_y = ... predictions = sess.run(logits, feed_dict={x: test_x}) ``` 在这个例子,我们创建了与之前相同的计算图,并使用 `tf.train.Saver` 类的 `restore` 方法从文件 `'./model.ckpt'` 恢复模型的参数。恢复参数后,我们可以使用模型进行预测。需要注意的是,恢复模型参数时,需要在调用 `tf.global_variables_initializer()` 之前调用 `saver.restore` 方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值