【发布时间】:2021-04-01 15:56:48
【问题描述】:
我有 3000 组左右的 7 张图像,每张图像大约为 144 x 256 灰度像素,我想增强这些图像中的每一个。我知道这适用于 3d 图像,例如 shape- (144, 256, 3),但我对数据增强还很陌生,并且不确定解决此问题的最佳方法。我想到的一个想法是检查每一组并制作几张图像的副本,每个副本都略微增强,但我不知道如何去做。这是我到目前为止的部分:
data_augmentation = keras.Sequential([
layers.experimental.preprocessing.RandomFlip('horizontal', input_shape=(train_images.shape[1:])),
layers.experimental.preprocessing.RandomZoom(0.1)
])
model = models.Sequential()
model.add(data_augmentation)
model.add(layers.Conv3D(512, (1, 3, 3), padding='same', activation='relu', input_shape=(train_images.shape[1:])))
model.add(layers.MaxPooling3D((1, 2, 2)))
model.add(layers.Conv3D(256, (1, 3, 3), padding='same', activation='relu'))
model.add(layers.MaxPooling3D((1, 2, 2)))
model.add(layers.Dropout(0.3))
model.add(layers.Conv3D(256, (1, 3, 3), padding='same', activation='relu'))
model.add(layers.MaxPooling3D((1, 2, 2)))
model.add(layers.Conv3D(128, (1, 3, 3), padding='same', activation='relu'))
model.add(layers.MaxPooling3D((1, 2, 2)))
model.add(layers.Dropout(0.2))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(1))
这是我目前收到的错误消息和回溯:
Traceback (most recent call last):
File "C:\Users\Mason Choi\PycharmProjects\Passion_project\main (test).py", line 50, in <module>
layers.experimental.preprocessing.RandomZoom(0.1)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\training\tracking\base.py", line 517, in _method_wrapper
result = method(self, *args, **kwargs)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\sequential.py", line 144, in __init__
self.add(layer)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\training\tracking\base.py", line 517, in _method_wrapper
result = method(self, *args, **kwargs)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\sequential.py", line 208, in add
layer(x)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 952, in __call__
input_list)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 1091, in _functional_construction_call
inputs, input_masks, args, kwargs)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 822, in _keras_tensor_symbolic_call
return self._infer_output_signature(inputs, args, kwargs, input_masks)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 862, in _infer_output_signature
self._maybe_build(inputs)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 2685, in _maybe_build
self.input_spec, inputs, self.name)
File "C:\Users\Mason Choi\anaconda3\envs\Passion_project\lib\site-packages\tensorflow\python\keras\engine\input_spec.py", line 223, in assert_input_compatibility
str(tuple(shape)))
ValueError: Input 0 of layer random_flip is incompatible with the layer: expected ndim=4, found ndim=5. Full shape received: (None, 7, 36, 64, 1)
Process finished with exit code 1
如果您需要更多信息,请告诉我!
【问题讨论】:
标签: python image tensorflow keras data-augmentation