如何在tensorflow中为输入张量添加更多通道?

时间:2017-03-08 11:23:35

标签: python-3.x tensorflow

目前,我有一个只有一个频道的输入张量。我正在试图弄清楚如何添加其他渠道。

例如,假设当前输入的8x8通道是 -

 01, 02,...08, 
 09, 10,...16, 
 .
 .
 57, 58,...64

我想添加另外两个8x8的通道(用零填充) -

 0, 0,...0, 
 0, 0,...0, 
 .
 .
 0, 0,...0

我当前的代码(接受大小为64的列表并重新整形为1个频道的8x8) -

x = tf.placeholder(tf.float32, shape=[None, 64])
x_image = tf.reshape(x, [-1, 8, 8, 1])

input = [1, 2, ...64] #list of 64 items
train_step_policy.run(feed_dict={x: [input], y: [some output list]}, session= sess)        

要再添加2个频道,我已将代码更改为 -

x = tf.placeholder(tf.float32, shape=[None, 64*3])
x_image = tf.reshape(x, [-1, 8, 8, 3])

input = [1, 2, ...64] #list of 64 items
#Inserted 2 more items after each item in the input list
temp = [0*64]
inputchannel3 = [[]]
for b1 in input:
    del temp[:]
    for b2 in b1:
        temp += [b2] + [0] + [0]
    inputchannel3.append(temp)
train_step_policy.run(feed_dict={x: inputchannel3, y: [some output list]}, session= sess)        

inputchannel3看起来像 - [1, 0, 0, 2, 0, 0, ...64, 0, 0]

我的问题是 - 这是添加新频道的正确方法吗?

我之所以这么说是因为我不清楚tf.reshape将如何重塑这个问题。是否知道每3个项目(而不是3个连续项目)创建3个频道?

1 个答案:

答案 0 :(得分:1)

你的问题是:

  

这是添加新频道的正确方法吗?

对此的简短回答是:是的,干得好!

了解此功能的最佳方法是查看文档:{​​{3}} 如果你有彩色图像和RGBRGBRGBRGB阵列(所以通道1,2,3,1,2,3等),这就是告诉tensorflow创建三个通道的方法!

如你所述:

  

inputchannel3看起来像 - [1,0,0,2,0,0,... 64,0,0]

我认为你做的一切都是正确的:D

希望这有帮助!