TensorFlow常用函数(一)
(2)tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=None,data_format=None, name=None):卷积操作
(4)激活函数比较:tf.nn.relu()、tf.nn.sigmoid()、tf.nn.tanh()、tf.nn.bias_add()、tf.nn.dropout():
(5)池化函数:tf.nn.avg_pool()、tf.nn.max_pool()
(6)tf.nn.conv2d_transpose():反卷积函数
(7)tf.nn.atrous_conv2d(value, filters, rate, padding, name=None):空洞卷积
(8)tf.Session.run(fetches,feed_dict=None,options=None,run_metadata=None):
下一篇:TensorFlow常用函数(二)
1、创建tensor常量
(1)tf.constant(或tf.constant_initializer)创建常量:
函数原型:tf.constant(value,dtype=None,shape=None,name='Const',verify_shape=False)
tensor = tf.constant([1, 2, 3, 4, 5, 6, 7]) --->[1, 2, 3, 4, 5, 6, 7]
tensor = tf.constant(-1.0, shape=[2, 3]) --->[[-1. -1. -1.] [-1. -1. -1.]]
tensor=tf.constant(np.arange(10),dtype = tf.float32,shape = [2,5],name = "constant")
-->[[0. 1. 2. 3. 4.] [5. 6. 7. 8. 9.]]
(2)tf.zeros(或tf.zeros_initializer)、tf.ones(或tf.ones_initializer)创建常量
tensor=tf.zeros((2,3),dtype = tf.float32,name = None)
-->[[0. 0. 0.] [0. 0. 0.]]
tensor=tf.ones((2,3),dtype = tf.float32,name = None)
-->[[1. 1. 1.] [1. 1. 1.]]
(3)递增序列创建常量
tf.linspace(start,stop,num,name = None )
tf.range(start,limit,delta = 1,name = "range")
tensor=tf.linspace(0.0,10.0,11)--->[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
tensor=tf.range(0.0,5.0,delta = 1,name = "range")--->[0. 1. 2. 3. 4.]
(4)创建特殊分布的常量(tf.random_normal_initializer()、tf.truncated_normal_initializer()、tf.random_uniform_initializer()、tf.random_shuffle_initializer())
tf.random_normal(shape,mean = 0,stddev = 1,dtype = tf.float32,seed = None,name = None)
tf.truncated_normal(shape,mean = 0,stddev = 1,dtype = tf.float32,seed = None,name = None)
这两函数都是生成正态随机数,区别是truncated在生成随机数后,如果随机数在两倍标准差之外,就重新生成一个,直到生成最终结果。参数中shape为一个列表,表示形状,mean和stddev分别标书均值和标准差,seed为随机数种子。和其他python随机语法一样,固定seed以后,生成的随机数将不变。
tf.random_uniform(shape,minval = 0.0,maxval = 1.0,dtype = tf.float32,seed = None):这个函数生成从0到1中平均分布的数值。
tf.random_shuffle(value,seed = None,name = None):传入一个tensor,然后将这个rensor进行随机洗牌。
(5)使用numpy的数组来创建
x = np.array([[[11, 21, 31],[41, 51, 61]]])
tensor= tf.convert_to_tensor(x, dtype = tf.float32)
-->[[[11. 21. 31.] [41. 51. 61.]]]
2、tensor变量的创建、保存、读取
tensorflow中变量一般用来用来描述学习的参数,tensorflow变量需要先进行初始化,然后才可以使用,变量也可以进行分享与保存,变量部分主要有新建、初始化、保存与读取、分享、更新几个部分。
(1)tensorflow中有两个关于variable的op,tf.Variable()与tf.get_variable():
1)tf.Variable(initial_value=None, trainable=True, collections=None,validate_shape=True, caching_device=None, name=None, variable_def=None, dtype=None, expected_shape=None, import_scope=None)
2) tf.get_variable(name, shape=None, dtype=None, initializer=None, regularizer=None, trainable=True, collections=None, caching_device=None, partitioner=None, validate_shape=True, custom_getter=None)
init_value为其初始化值,可以传入数值,列表,numpy数组,tf的tensor等,init_value必须含有shape,如果没有,validate_shape必须设置为False,但是对一个变量来说,最好使用固定结构的变量。trainable默认为True。这两个函数的区别如下: 使用tf.Variable时,如果检测到命名冲突,系统会自己处理。使用tf.get_variable()时,系统不会