Tensorflow笔记(一)

本文介绍了TensorFlow的基础知识,包括卷积中的SAME和VALID填充方式,tf.app.flags用于接收命令行参数,以及共享变量的概念和实现。详细探讨了变量作用域,以及如何在TensorFlow中计算和应用梯度,如梯度下降法和Adam优化器的应用。
摘要由CSDN通过智能技术生成

Tensorflow Note(一)

标签(空格分隔): tensorflow笔记


卷积中的SAME和VALID

1.在进行卷积时,对于padding参数可以选择VALID或者SAME, 用实例来说明二者的不同:

  • SAME,即保证输出的卷积结果和输入tensor的长度和宽度保持不变。所以会进行补零操作,在原始tensor周围补零,直到输出tensor和输入tensorflow尺寸相同。
input_layer = tf.reshape(tf.linspace(start=1.0, stop=25.0, num=25), [1, 5, 5, 1])
weights = tf.ones(shape=[5, 5, 1, 1])

convolution = tf.nn.conv2d(input_layer, weights, strides=[1, 1, 1, 1], padding='SAME')

init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    print(sess.run(convolution))
"""
[[[[  63.]
   [  90.]
   [ 120.]
   [ 102.]
   [  81.]]

  [[ 114.]
   [ 160.]
   [ 210.]
   [ 176.]
   [ 138.]]

  [[ 180.]
   [ 250.]
   [ 325.]
   [ 270.]
   [ 210.]]

  [[ 174.]
   [ 240.]
   [ 310.]
   [ 256.]
   [ 198.]]

  [[ 153.]
   [ 210.]
   [ 270.]
   [ 222.]
   [ 171.]]]]
"""
  • VALID,即不补零,只有图像中有效的元素进行运算,如果超出范围就不计算,所以输出tensor的尺寸必然小于输入tensor的尺寸。
input_layer = tf.reshape(tf.linspace(start=1.0, stop=25.0, num=25), [1, 5, 5, 1])
weights = tf.ones(shape=[5, 5, 1, 1])

convolution = tf.nn.conv2d(input_layer, weights, strides=[1, 1, 1, 1], padding='VALID')

init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    print(sess.run(convolution))
"""
[[[[ 325.]]]]
"""

Tensorflow中tf.app.flags

1.tf.app.flags用于支持接收命令行传递的参数,相当于接收argv。
2.可以使用python test.py --learning_rate 0.1 --epoch_num 5 --mode test进行参数传递

import tensorflow as tf

flags = tf.app.flags
flags.DEFINE_float("learning_rate", 0.01, "learning_rate_description")
flags.DEFINE_integer("epoch_num", 10, "Number of epochs to run trainer")
flags.DEFINE_string("mode", "train", "Option mode: train, train_from_scratch, inference")

# Provides the global object that can be used to access flags.
FLAGS = flags.FLAGS


def main(_):
    print(FLAGS.learning_rate)
    print(FLAGS.epoch_num)
    print(FLAGS.mode)


if __name__ == '__main__':
    tf.app.run()

"""
0.01
10
train
"""

Tensorflow中共享变量

目的:

当我们需要共享大量变量集,并且还想在一个地方初始化所有变量时,我们就需要共享变量。

函数:

tensorflow中有两个产生变量的函数:一个是tf.get_variable(),另外一个是tf.Varibale()。通常对于新手我们都会使用后者,前者和后者的区别在于前者拥有变量检查机制,会检查已经存在的变量是否设置为共享变量,如果已经存在的变量没有设置为共享变量,tensorflow在运行到第二个拥有相同名字的变量时,会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值