Tensorflow函数随笔
tf.cond()
tf.cond( pred, true_fn=None, false_fn=None, name=None )
true_fn和false_fn都返回输出张量的列表。true_fn和false_fn必须具有相同的非零数和输出类型。
参数:
- pred:一个标量,它决定是返回true_fn的结果还是false_fn的结果。
- true_fn:如果pred为真,则执行可调用的。
- false_fn:如果pred为false,则可执行的调用。
- name:返回的张量的可选名称前缀。
返回值:
- 调用true_fn或false_fn返回的张量。如果callables返回一个单例列表,则从列表中提取元素。
tf.py_func()
tf.py_func( func, inp, Tout, stateful=True, name=None )
参数:
- func: 一个Python函数,它接受ndarray对象作为参数并返回一个ndarray对象列表(或单个ndarray)。这个函数必须接受inp中有多少张量就有多少个参数,这些参数类型将匹配相应的tf.inp中的tf.tensor。返回的ndarrays必须匹配已定义的Tout的数字和类型。重要提示: func的输入和输出numpy ndarrays不能保证是副本。在某些情况下,它们的底层内存将与相应的TensorFlow张量共享。在没有显式(np.)复制的python数据结构中,就地修改或存储func输入或返回值可能会产生不确定的结果。
- inp: 一个张量对象的列表。
- Tout: tensorflow数据类型的列表或元组,如果只有一个tensorflow数据类型,则使用单个tensorflow数据类型,指示func返回什么。
- stateful: (布尔)。如果为真,则应该认为该函数是有状态的。如果一个函数是无状态的,当给定相同的输入时,它将返回相同的输出,并且没有可观察到的副作用。诸如公共子表达式消除之类的优化只在无状态操作上执行。
- name: 操作的名称(可选)。
返回值:
- func计算的张量或单个张量的列表
import numpy as np import tensorflow as tf def my_func(array1,array2): return array1 + array2, array1 - array2 if __name__ =='__main__': array1 = np.array([[1, 2], [3, 4]]) array2 = np.array([[1, 2], [3, 4]]) a1 = tf.placeholder(tf.float32,[2,2],name = 'array1') a2 = tf.placeholder(tf.float32,[2,2],name = 'array2') # 函数、输入、输出类型 y1,y2 = tf.py_func(my_func,[a1,a2],[tf.float32, tf.float32]) with tf.Session() as sess: y1_,y2_ = sess.run([y1,y2],feed_dict={a1:array1,a2:array2}) print(y1_) print('*'*10) print(y2_) Output: ----------- [[2. 4.] [6. 8.]] ********** [[0. 0.] [0. 0.]] -----------
tf.no_regularizer
使用这个函数用来防止变量的正则化。
tf.gather
tf.gather(params,indices,axis=0 )
从params的axis维根据indices的参数值获取切片


浙公网安备 33010602011771号