做微信的网站有哪些/google seo教程
Tensorflow中tf.nn, tf.layers, tf.contrib模块介绍
本文链接:https://blog.csdn.net/weixin_44633882/article/details/89211865
简单了解一下tensorflow中tf.nn,tf.layers,tf.contrib三个模块。
- tf.nn: 封装了主要的神经网络操作(基本都是函数)
基本使用这个模块中的函数就可以搭建一个CNN或RNN
列举部分:- 常见操作: avg_pool, conv2d
- 激活函数: sigmoid, relu, tanh
- 小trick: batch_normalization, dropout, lrn
- 一个子模块rnn_cell: RNNCell, LSTMCell, GRUCell
展示个conv2d的接口:
tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=True,data_format='NHWC',dilations=[1, 1, 1, 1],name=None
)
- tf.layers: 和tf.nn的功能基本相同,但原tf.nn中函数到这里被封装成一个类(模块)
不包括RNN模块
列举部分:- tf.layers.Layer: 其中所有layer类的基类。
继承于Layer(tf.keras.layers.Layer)
官方的话:It is considered legacy, and we recommend the use of tf.keras.layers.Layer instead.(官方自己也觉得历史遗留的模块太复杂太多了hahaha,所以劝大家使用keras和tf2.0) - 常见操作: Average pooling, BatchNormalization, Conv2D, Dropout, Flatten
- tf.layers.Layer: 其中所有layer类的基类。
同样,也给一个Conv2D的接口:
是不是这个形状很好看啊!可以看到,相较于tf.nn.conv2d()参数变多了。我比较在意的是:激活函数、kernel,bias的初始化和正则化,以及trainable都可以作为参数了。更加方便了!但我自己一般使用slim。
__init__(filters,kernel_size,strides=(1, 1),padding='valid',data_format='channels_last',dilation_rate=(1, 1),activation=None,use_bias=True,kernel_initializer=None,bias_initializer=tf.zeros_initializer(),kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None,trainable=True,name=None,**kwargs
)
- tf.contrib:封装了构建计算图的高级操作,不仅仅是layers,还包括checkpoint,slim(大家都喜欢的!),seq2seq,optimizer_v2等等,其中有些操作是还在测试,有些不稳定的,官方也不定期会加入新的操作。
还是再简单看看tf.contrib.layers.conv2d的接口:
tf.contrib.layers.conv2d(inputs,num_outputs,kernel_size,stride=1,padding='SAME',data_format=None,rate=1,activation_fn=tf.nn.relu,normalizer_fn=None,normalizer_params=None,weights_initializer=initializers.xavier_initializer(),weights_regularizer=None,biases_initializer=tf.zeros_initializer(),biases_regularizer=None,reuse=None,variables_collections=None,outputs_collections=None,trainable=True,scope=None
)
参考:
https://tensorflow.google.cn/api_docs/python/tf
https://blog.csdn.net/u014365862/article/details/77833481