我想将我的 1024x1024x3 大图像分成 32x32x3 块,因此我认为这extract_image_patches()是正确的想法:
...
patch_size = [1, 32, 32, 3]
patch_batch = tf.extract_image_patches(
image_batch, patch_size, patch_size, [1, 1, 1, 1], 'VALID')
patch_batch = tf.reshape(patch_batch, [-1, 32, 32, 3])
Run Code Online (Sandbox Code Playgroud)
其中 image_batch 是用tf.train.shuffle_batch(). 但是,正如此错误消息所解释的那样,这似乎是“未实现的”:
UnimplementedError (see above for traceback): Only support ksizes across space.
[[Node: ExtractImagePatches = ExtractImagePatches[T=DT_FLOAT, ksizes=[1, 32, 32, 3], padding="VALID", rates=[1, 1, 1, 1], strides=[1, 32, 32, 3], _device="/job:localhost/replica:0/task:0/cpu:0"](shuffle_batch)]]
Run Code Online (Sandbox Code Playgroud)
如果我将图像读取为灰度并使用 1 个通道,则没有问题,但我想以全彩色进行训练。我是否只需要进行一些重塑,或者我错过了什么?
Python 3.4,TensorFlow 1.1.0
我想,你应该试试这个:
imgs = np.random.rand(1,1024,1024,3)
patches = tf.extract_image_patches(images=imgs, ksizes=[1, 32, 32, 1], strides=[1, 32, 32, 1], rates=[1, 1, 1, 1], padding='VALID')
patches = tf.reshape(patches,[-1,32,32,3])
val = sess.run(patches)
print val.shape
Run Code Online (Sandbox Code Playgroud)
(1024, 32, 32, 3)
您不必在 ksizes 中指定 #channels。它将从每个通道中提取补丁,您可以稍后对其进行整形。这对你有帮助吗??
必须分析重塑行为以检查补丁的外观。
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |