python 下tensorflow笔记


def __init__():    初始化新创建对象的状态,在一个对象被创建以后会立即调用。

 


tf.name_scope(‘’):   创建一个参数名称空间

tf.placeholder(dtype,  shape=None, name=Non):  dtype:数据类型;shape:数据形状。默认是None,就是一维值。通常是在神经网络构建graph的时候在模型中的占位

tf.concat([tensor1, tensor2, tensor3,...], axis):   用来拼接张量的函数。axis=0     代表在第0个维度拼接;axis=1     代表在第1个维度拼接 对于一个二维矩阵,第0个维度代表最外层方括号所框下的子集,第1个维度代表内部方括号所框下的子集

tf.variable_scope:跟 tf.get_variable() 配合使用,实现变量共享的功能。

tf.truncated_normal(shape, mean, stddev) :  shape表示生成张量的维度,mean是均值,stddev是标准差。这个函数产生正太分布,均值和标准差自己设定。这是一个截断的产生正太分布的函数,就是说产生正太分布的值如果与均值的差值大于两倍的标准差,那就重新生成。

tf.constant_initializer(value):  类生成一个初始值为常量value的tensor对象

tf.contrib.layers.batch_norm:  通过减少内部协变量转移加速深度网络训练。可以用作conv2d和fully_connected的标准化函数。

tf.contrib.layers.batch_norm(
    inputs,
    decay=0.999,
    center=True,
    scale=False,
    epsilon=0.001,
    activation_fn=None,
    param_initializers=None,
    param_regularizers=None,
    updates_collections=tf.GraphKeys.UPDATE_OPS,
    is_training=True,
    reuse=None,
    variables_collections=None,
    outputs_collections=None,
    trainable=True,
    batch_weights=None,
    fused=None,
    data_format=DATA_FORMAT_NHWC,
    zero_debias_moving_mean=False,
    scope=None,
    renorm=False,
    renorm_clipping=None,
    renorm_decay=0.99,
    adjustment=None
)
1 inputs: 輸入

2 decay :衰減係數。合適的衰減係數值接近1.0,特別是含多個9的值:0.999,0.99,0.9。如果訓練集表現很好而驗證/測試集表現得不好,選擇

小的係數(推薦使用0.9)。如果想要提高穩定性,zero_debias_moving_mean設為True

3 center:如果為True,有beta偏移量;如果為False,無beta偏移量

4 scale:如果為True,則乘以gamma。如果為False,gamma則不使用。當下一層是線性的時(例如nn.relu),由於縮放可以由下一層完成,

所以可以禁用該層。

5 epsilon:避免被零除

6 activation_fn:用於啟用,預設為線性啟用函式

7 param_initializers : beta, gamma, moving mean and moving variance的優化初始化

8 param_regularizers : beta and gamma正則化優化

9 updates_collections :Collections來收集計算的更新操作。updates_ops需要使用train_op來執行。如果為None,則會新增控制元件依賴項以

確保更新已計算到位。

10 is_training:圖層是否處於訓練模式。在訓練模式下,它將積累轉入的統計量moving_mean並 moving_variance使用給定的指數移動平均值 decay。當它不是在訓練模式,那麼它將使用的數值moving_mean和moving_variance。
11 scope:可選範圍variable_scope

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

input : 输入的要做卷积的图片,要求为一个张量,shape为 [ batch, in_height, in_weight, in_channel ],其中batch为图片的数量,in_height 为图片高度,in_weight 为图片宽度,in_channel 为图片的通道数,灰度图该值为1,彩色图为3。(也可以用其它值,但是具体含义不是很理解)

filter: 卷积核,要求也是一个张量,shape为 [ filter_height, filter_weight, in_channel, out_channels ],其中 filter_height 为卷积核高度,filter_weight 为卷积核宽度,in_channel 是图像通道数 ,和 input 的 in_channel 要保持一致,out_channel 是卷积核数量。

strides: 卷积时在图像每一维的步长,这是一个一维的向量,[ 1, strides, strides, 1],第一位和最后一位固定必须是1

padding: string类型,值为“SAME” 和 “VALID”,表示的是卷积的形式,是否考虑边界。"SAME"是考虑边界,不足的时候用0去填充周围,"VALID"则不考虑

use_cudnn_on_gpu: bool类型,是否使用cudnn加速,默认为true

更多:https://blog.csdn.net/zuolixiangfisher/article/details/80528989

tf.reshape(tensor,shape,name=None):函数的作用是将tensor变换为参数shape形式,其中的shape为一个列表形式,特殊的是列表可以实现逆序的遍历,即list(-1).-1所代表的含义是我们不用亲自去指定这一维的大小,函数会自动进行计算,但是列表中只能存在一个-1。(如果存在多个-1,就是一个存在多解的方程)

tf.matmul():  将矩阵a乘以矩阵b,生成a * b。

reduce_mean(input_tensor,
                axis=None,
                keep_dims=False,
                name=None,
                reduction_indices=None)

用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。、

第一个参数input_tensor: 输入的待降维的tensor;

第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;

第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;

第四个参数name: 操作的名称;

第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;

tf.random_uniform(shape, minval=0, maxval=None, dtype=tf.float32, seed=None, name=None):

shape:一维整数张量或Python副本。输出张量的形状。

minval:dtype类型的0-D张量或Python值;生成的随机值范围的下限;设为为0。

maxval:dtype类型的0-D张量或Python值。要生成的随机值范围的上限。如果dtype是浮点,则默认为1。

dtype:输出的类型:float16,float32,float64,int32,orint64。

seed:一个Python整数。用于为分布创建一个随机种子。查看tf.set_random_seed行为。

tf.split( value, num_or_size_splits, axis=0, num=None, name='split' ):把一个张量划分成几个子张量。value:准备切分的张量。num_or_size_splits:准备切成几份。axis : 准备在第几个维度上进行切割

 tf.abs():就是求数值的绝对值

tf.ones_like(tensor) :该操作返回一个具有和给定tensor相同形状(shape)和相同数据类型(dtype),但是所有的元素都被设置为1的tensor

tf.clip_by_value(t, clip_value_min, clip_value_max, name=None):基于定义的min与max对tesor数据进行截断操作,目的是为了应对梯度爆发或者梯度消失的情况

Numpy.random.shuffle与.permutation:函数shuffle与permutation都是对原来的数组进行重新洗牌(即随机打乱原来的元素顺序);区别在于shuffle直接在原来的数组上进行操作,改变原来数组的顺序,无返回值。而permutation不直接在原来的数组上进行操作,而是返回一个新的打乱顺序的数组,并不改变原来的数组。


numpy.mod():计算输入数组中相应元素的相除后的余数

tf.nn.conv2d_transpose(valuefilteroutput_shapestrides,padding,data_format, name):

value的格式为[batch, he* value的格式为[batch, height, width, in_channels],height和width是用来计算输出尺寸用到的最重要的两个参数,表示输入该层feature map的高度和宽度,典型的NHWC格式;
* filter的格式为[height, width, output_channels, input_channels],务必注意这里的channel数是输出的channel数在前,输入的channel数在后。
* output_shape是一个1-D张量,传入的可以是一个tuple或者list,在不指定data_format参数的情况下,格式必须为NHWC。注意:这里的C要与filter中的output_channels保持一致;
* strides的格式为一个整数列表,与conv2d方法在官方文档中写的一样,必须保证strides[0]=strides[3]=1,格式为[1, stirde, stride, 1];
* padding依然只有'SAME'和'VALID';ight
width, in_channels],heightwidth是用来计算输出尺寸用到的最重要的两个参数,表示输入该层feature map的高度和宽度,典型的NHWC格式;
filter的格式为[height, width, output_channels, input_channels],务必注意这里的channel数是输出的channel数在前输入的channel数在后
output_shape是一个1-D张量,传入的可以是一个tuple或者list,在不指定data_format参数的情况下,格式必须为NHWC注意:这里的C要与filter中的output_channels保持一致;
strides的格式为一个整数列表,与conv2d方法在官方文档中写的一样,必须保证strides[0]=strides[3]=1,格式为[1, stirde, stride, 1];
padding依然只有'SAME'和'VALID';

 

f.nn.drop(x,  keep_prob, noise_shape=None, seed=None,name=None):防止模型训练过程中的过拟合问题

x:  输入值;  keep_prob: float类型,每个元素被保留下来的概率;  noise_shape: 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape

 

tf.nn.sigmoid_cross_entropy_with_logits(_sentinel=None,labels=None, logits=None, name=None):这个函数的输入是logits和targets,logits就是神经网络模型中的 W * X矩阵,注意不需要经过sigmoid,而targets的shape和logits相同,就是正确的label值,例如这个模型一次要判断100张图是否包含10种动物,这两个输入的shape都是[100, 10]。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值