tf.space_to_depth(函数)
tf.space_to_depth(
input,
block_size,
name=None,
data_format=‘NHWC’)
重新排列空间数据块,进入深度.更具体地说,该操作会输出输入张量的副本,其中来自维height和width维的值将移至该depth维.attr block_size表示输入块大小.
不重叠的block_size乘block size大小的块,在每个位置重新排列成深度.
输出张量的深度是block_size * block_size * input_depth.
输入的每个块内的Y、X坐标成为输出通道索引的高阶分量.
输入张量的高度和宽度必须能被block_size整除.
a=np.random.randn(3,3,6,6)
b=tf.space_to_depth(a,block_size=3)
print(a.shape)
print(b)
#输出
(3, 3, 6, 6)
Tensor("SpaceToDepth_14:0", shape=(3, 1, 2, 54), dtype=float64)
当 输入张量的height,width为0时,输出亦为none
func()()
形如func()()这样形式的写法,其实是前一个函数的返回值是函数,因此第二个括号就是返回函数的参数,例如:
def a(a):
print(a)
def b(b):
print(b)
return b
a(2)(3)
#输出
2
3
Lambda()
keras Lambda自定义层实现数据的切片,Lambda进行参数的传递
a =tf.random_normal((4,2,2,4))
def seg(a):
return tf.space_to_depth(a,block_size=2)
x1 = Lambda(seg,output_shape=(4,1,1,16))(a)
print(x1)
#输出
Tensor("lambda_11/SpaceToDepth:0", shape=(4, 1, 1, 16), dtype=float32)
Keras( tensorflow backend )常用函数常用函数
K.tile函数定义:
K.tile(
input,
multiples,
name=None
)
input是待扩展的张量,multiples是扩展方法。 假如input是一个3维的张量。那么mutiples就必须是一个1x3的1维张量。这个张量的三个值依次表示input的第1,第2,第3维数据扩展几倍。
a =K.random_normal((4,2,2))
b=K.tile(a,[1,1,3])
print(a)
print(b)
#输出
Tensor("random_normal_5:0", shape=(4, 2, 2), dtype=float32)
Tensor("Tile:0", shape=(4, 2, 6), dtype=float32)
K.expand_dims
expand_dims(x, dim=-1)
在下标为dim的轴上增加一维
x=np.array([[1,3],[2,4],[3,6]])
print("x shape:",x.shape)
y1=K.expand_dims(x, 0)
y2=K.expand_dims(x, 1)
y3=K.expand_dims(x, 2)
y4=K.expand_dims(x, -1)
print("y1 shape:",y1.shape)
print("y2 shape:",y2.shape)
print("y3 shape:",y3.shape)
print("y4 shape:",y4.shape)
#输出
x shape: (3, 2)
y1 shape: (1, 3, 2)
y2 shape: (3, 1, 2)
y3 shape: (3, 2, 1)
y4 shape: (3, 2, 1)
K.cast
tf.cast( ) 或者K.cast( ) 是执行 tensorflow 中的张量数据类型转换
K.gather()
gather(reference,indices)
在给定的张量中搜索给定下标的向量。
参数:reference表示被搜寻的向量;
indices表示整数张量,要查询的元素的下标。
返回值:一个与参数reference数据类型一致的张量。
from keras import backend as K
a=np.array([[1,2],[9,8],[7,4],[10,16]])
b=[1,2,3,1]
with tf.Session() as sess:
print(sess.run(K.gather(a,b)))
#输出
[[ 9 8]
[ 7 4]
[10 16]
[ 9 8]]
with open(path) as f:
文件打开函数,可以省略关闭的代码,with函数自动调用close()函数
最后推荐大家一个靠谱的论文检测平台。重复的部分有详细出处以及具体修改意见,能直接在文章上做修改,全部改完一键下载就搞定了。他们现在正在做毕业季活动, 赠送很多免费字数,可以说是十分划算了!地址是:https://www.paperpass.com/