Я хотел бы использовать функцию tf.nn.conv2d()
на примере одного изображения, но в документации TensorFlow, похоже, упоминается только применение этого преобразования к серии изображений.
В документах упоминается, что входное изображение должно иметь форму [batch, in_height, in_width, in_channels]
, а ядро должно иметь форму [filter_height, filter_width, in_channels, out_channels]
.Однако, какой самый простой способ достижения двумерной свертки с входной формой [in_height, in_width, in_channels]
?
Вот пример текущего подхода, где img
имеет форму (высота, ширина, каналы):
img = tf.random_uniform((10,10,3)) # a single image
img = tf.nn.conv2d([img], kernel)[0] # creating a batch of 1, then indexing the single example
Я изменяю ввод следующим образом:
[in_height, in_width, in_channels]->[1, in_height, in_width, in_channels]->[in_height, in_width, in_channels]
Это похоже на ненужную и дорогостоящую операцию, когда меня интересует только преобразование одного примера.
Есть ли простой / стандартный способ сделать это, не требующий изменения формы?