深度学习--大锅菜

tf.device()   指定tensorflow运行的GPU或CPU设备

tf.name.scope()  相当于 将定义的几个变量 放到一个“文件夹” 中。里面的参数就会“文件夹”的名字。

tf.Variable()用于生产一个初始值为initial_value的变量,必须指定初始化值。

tf.get_variable()可获取已存在的变量也可创建一个不存在的变量,必须有名字,并且定义初始化方式等各个参数。

初始化方式:    

    tf.constant_initializer:常量初始化函数

    tf.random_normal_initializer:正态分布

    tf.truncated_normal_initializer:截取的正态分布

    tf.random_uniform_initializer:均匀分布

    tf.zeros_initializer:全部是0

    tf.ones_initializer:全是1

    tf.uniform_unit_scaling_initializer:满足均匀分布,但不影响输出数量级的随机值

tf.nn.rnn_cell.DropoutWrapper(cell, input_keep_prob , output_keep_prob)  使神经网络层的输入可以做dropout,输出也可以做dropout。cell=层的类型,一遍是RNNCell类型;input_keep_prob是一个概率,希望输入由多少神经元被保留,同理output。

tf.nn.rnn_cell.MultiRNNCell(cells,state_is_tuple = True)由多个简单的cells组成的RNN cell。用于构建多层循环神经网络。cells:RNNCells的list,state_is_tuple:如果为True,接受和返回的states是n-tuples。

tf.summary.scalar(tags, values, collections=None, name=None)用来显示标量信息,一般在画loss,accuary时会用到这个函数。

tf.truncated_normal()产生截断正态分布随机数,取值范围为 [ mean - 2 * stddev, mean + 2 * stddev ]

tf.nn.embedding_lookup()---选取一个张量里面索引对应的元素。

tf.nn.embedding_lookup(params, ids)
# params可以是张量也可以是数组等,id就是对应的索引

p=tf.Variable(tf.random_normal([5,1]))#生成10*1的张量
b = tf.nn.embedding_lookup(p, [1, 3])#查找张量中的序号为1和3的
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(b))
    print(sess.run(p))
    print(p)
    print(type(p))

'''
[[ 0.10616682]
 [-0.6046176 ]]
[[ 0.45999715]
 [ 0.10616682]
 [ 0.6207007 ]
 [-0.6046176 ]
 [ 2.7066622 ]]
<tf.Variable 'Variable:0' shape=(5, 1) dtype=float32_ref>
<class 'tensorflow.python.ops.variables.RefVariable'>
'''

tf.truncated_normal () ---产生截断正态分布随机数

truncated_normal(
    shape,     # 输出张量的维度
    mean=0.0,  # 均值
    stddev=1.0,  # 标准差
    dtype=tf.float32,  
    seed=None,   # 随机种子,若赋值,每次产生相同随机数
    name=None
)

tf.nn.conv2d () ---生成卷积核

tf.nn.conv2d (
            input,     # 张量,shape = [ batch, in_height, in_weight, in_channel(灰度图为1,彩色图为3)]
            filter,    # 卷积核,一个张量,shape = [batch_size, in_height, in_weight, in_channel(要与input的channel一致),out_channels(卷积核数量)]
            strides,   # 卷积步长,一个张量,shape = [ 1, strides, strides, 1],第一位和最后一位固定必须是1
            padding,   # "SAME"是考虑边界,不足的时候用0去填充周围,"VALID"则不考虑
            use_cudnn_on_gpu=None, 
            data_format=None,    
            name=None)

tf.nn.bias_add() ---将偏差项加到value上

tf.nn.bias_add(value,  # 张量
               bias,   # 一个 1-D 的张量,大小与value的列的维度匹配
               data_format=None,
               name=None)

tf.nn.max_pool() ---最大池化操作

tf.nn.max_pool(value,  #  feature map,shape = [batch, height, width, channels]
               ksize,   # 池化窗口的大小,shape = [1, height, width, 1] ,因为在batch和channels上做池化,所以这两个维度设为了1
               strides,  # : 窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1]
               padding, 
               name=None)

tf.nn.dropout() --- 防止或减轻过拟合

tf.nn.dropout(
 
    x,     # 输入的张量
 
    keep_prob,    # 每个元素被保留下来的概率,在初始化时,设置这个概率
      
    noise_shape=None,   # 代表随机产生“保留/丢弃”标志
 
     seed=None,
 
    name=None
 
)

tf.constant(value,shape)--- 创建常数张量

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

tf.nn.max_pool(value,   #需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[batch, height, width, channels]这样的shape

                ksize,     #池化窗口的大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以这两个维度设为了1

                strides,     # 和卷积类似,窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1]

                padding,     # 和卷积类似,可以取'VALID' 或者'SAME'
                name=None)

tf.placeholder()---分配内存,不放入数据

tf.placeholder(
    dtype,     # float32\float64
    shape=None,    # 默认为None,即一维张量,多维[None,784],行不定
    name=None
)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值