zoukankan      html  css  js  c++  java
  • tensorflow中一些常用的函数

    1、输入数据占位符
    1 X = tf.placeholder("float", [None, 64, 64, 1])

    2、产生正态分布

    1 X = tf.placeholder("float", [None, 64, 64, 1])

    参数说明:

    1. shape表示生成张量的维度
    2. mean是均值
    3. stddev是标准差

    说明:这个函数产生正太分布,均值和标准差自己设定。

    这是一个截断的产生正太分布的函数,就是说产生正太分布的值如果与均值的差值大于两倍的标准差,那就重新生成。和一般的正太分布的产生随机数据比起来,这个函数产生的随机数与均值的差距不会超过两倍的标准差,但是一般的别的函数是可能的。

    3、指数衰减学习率

    1 tf.train.exponential_decay(
    2     learning_rate,
    3     global_step,
    4     decay_steps,
    5     decay_rate,
    6     staircase=False,
    7     name=None
    8 )

    4、作用域函数

    1 tf.name_scope()和tf.variable_scope()

    tf.name_scope()和tf.variable_scope()是两个作用域

    一般和变量创建和调用函数搭配使用tf.variable()和tf.get_variable()

    常见的用途:

    1. 变量共享
    2. Tensorboard画流图时为了可视化封装变量

     

    tf.Variable()的话每次都会新建变量

    tf.get_variable(),它会去搜索变量名,有就直接用,没有再新建

     

    5、在tensor的某一维度求值的函数

    1 # 求最大值
    2 tf.reduce_max(input_tensor, reduction_indices=None, keep_dims=False, name=None)
    3 
    4 # 求平均值
    5 tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)

    参数说明:

    1. input_tensor:待求值的tensor。
    2. reduction_indices:在哪一维上求解。
    3. 参数(3)(4)可忽略。

    6、tensorflow有效控制GPU资源的占用?

    1 config = tf.ConfigProto()
    2 config.gpu_options.allow_growth = True

    注意:使用allow_growth option,刚一开始分配少量的GPU容量,然后按需慢慢的增加,由于不会释放内存,所以会导致碎片。

     

    7、tensorflow如何保存模型和恢复模型?

    7.1 保存模型

    将训练好的模型保存起来,以便以后进行验证和测试。tensorflow里面提供了模型保存的是tf.train.Saver()模块。模型保存,首先要创建一个Saver对象。

    1 saver=tf.train.Saver()

    在创建这个对象的时候,有一个参数我们经常会用到,就是max_to_keep参数,这个参数是用来设置保存模型的个数,默认为5,即保存最近的5个模型。

    如果你想没训练一代(epoch)就像保存一次模型,则可以使用max_to_keep设置为None或者0。

    比如:

    1 saver=tf.train.Saver(max_to_keep=0)

    当然,如果你只想保存最后一代模型,则只需要将max_to_keep设置为1即可,即:

    1 saver=tf.train.Saver(max_to_keep=1)

    创建完saver对象后,就可以保存训练好的模型了,如:

    1 saver.save(sess,'ckpt/mnist.ckpt',global_step=step)

    第二个参数是设定保存的路径和名字,第三个参数将训练的次数作为后缀加入到名字中。

    解释如下:

    saver.save(sess, 'my-model', global_step=0) ==>      filename: 'my-model-0'

    ...

    saver.save(sess, 'my-model', global_step=1000) ==> filename: 'my-model-1000'

     

    7.2 恢复模型

    模型恢复用的是restore()函数,它需要两个参数restore(sess, save_path),save_path指的是保存的模型路径。

    我们可以使用tf.train.latest_checkpoint()来自动获取最后一次保存的模型。

    1 model_file=tf.train.latest_checkpoint('ckpt/')
    2 
    3 saver.restore(sess,model_file)

    8、卷积操作

    1 tf.nn.conv2d (input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)

    参数说明:

    1. input: A 4-D Tensor。需要计算卷积的图像,其中shape是[batch, height, width, channels]。Tensor shape可以由data_format设定。Type必是"half","float32","float64"之一。
    2. filter: A 4-D Tensor。卷积核。Type和input相同。Shape是[卷积核高度,卷积核宽度, 图像通道数, 卷积核个数]。
    3. strides: 1-D Tensor of length 4。步长。Shape和input相同,一般batch和channels恒定为1,即[1, height, weight, 1]
    4.  padding: 卷积方式。可选方法有"SAME"、"VALID"。其中,VALID方式以(1,1)作为卷积的左上角起始点。SAME则以(1,1)作为卷积的中心起始点。即,SAME方法得到的卷积矩阵要大于VALID。
    5. use_cudnn_on_gpu:是否使用GPU加速。默认为True。
    6. data_format:数据格式,支持的格式有"NHWC"和"NCHW"。其中的区别主要是channels参数的位置。一般使用默认即可。
    7. name:用以指定该操作的name。在TensorBoard展示中较为有用。

    返回一个Tensor,类型不变。

    9、最大池化操作

    1 tf.nn.max_pool(value, ksize, strides, padding, name=None)

    参数说明:

    1. Value:需要池化的输入,通常是feature map,依然是[batch, height, width, channels]这样的shape
    2. Ksize:池化窗口的大小,取一个4维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以第一个和最后一个都设为。
    3. Strides:和卷积类似,表示窗口在每一个维度上滑动的步长,一般是[1, height, weight, 1]
    4. Padding:和卷积类型,可以取'VALID'或者'SAME'。

     返回一个Tensor,类型不变,shape依然是[batch, height, width, channels]这种形式。

     

  • 相关阅读:
    用Python学分析
    用Python学分析
    描述性统计指标
    用Python学分析
    Python练习:哥德巴赫猜想
    用Python学分析
    用Python学分析:集中与分散
    用Python学分析
    Ubuntu安装中文输入法
    Kali Linux ettercap的使用
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10245054.html
Copyright © 2011-2022 走看看