【发布时间】:2019-03-20 14:41:29
【问题描述】:
我有一个形状为 (1,4,4,1) 的张量,我想重复每个像素的值并将形状增加到 (1,28,28,1)。我想在每个维度上重复它。例如,如果它的第一个像素为 0,则生成一个形状为 (28,28,1) 且值为 0 的新张量,依此类推。我该怎么做?我感谢您的帮助。我需要像下面的代码一样在索引 i,j 中选择 wtm 的值,然后生成一个具有该值和形状 (1,28,28,1) 的新张量。 假设 wtm 是:
0 1 1 0
0 0 0 1
1 0 1 0
1 1 0 1
现在我需要知道 wtm (i,j) 是什么,然后用这个值生成一个新的张量。如果 wtm(i,j)=1 新张量是:
1 1 1 ... 1
1 1 1 ... 1
. ... 1
. ... 1
1 1 1 ... 1
wtm=Input((28,28,1))
image = Input((28, 28, 1))
conv1 = Conv2D(64, (5, 5), activation='relu', padding='same', name='convl1e',dilation_rate=(2,2))(image)
conv2 = Conv2D(64, (5, 5), activation='relu', padding='same', name='convl2e',dilation_rate=(2,2))(conv1)
conv3 = Conv2D(64, (5, 5), activation='relu', padding='same', name='convl3e',dilation_rate=(2,2))(conv2)
BN=BatchNormalization()(conv3)
encoded = Conv2D(1, (5, 5), activation='relu', padding='same',name='encoded_I',dilation_rate=(2,2))(BN)
#-----------------------adding w---------------------------------------
wfill=Kr.layers.Lambda(lambda x:tf.fill([28,28],x))
wtm_Fill=wfill(wtm(i,j))
add_const = Kr.layers.Lambda(lambda x: x[0] + x[1])
encoded_merged = add_const([encoded,wtm_Fill])
【问题讨论】:
-
您能否提供更具体的所需输出示例?我有一个解决方案,但不确定您需要什么
-
我把代码放在这里,我需要像这样在代码中选择 wtm 的特定索引,然后用这个值生成一个形状为 (1,28,28,1) 的新张量。但我不知道如何用张量做到这一点:((
标签: python tensorflow keras