我有一批大约3000组的7幅图像,每幅图像大约有144×256个灰度像素,我想放大每幅图像。我知道这适用于3d图像,例如形状-(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
如果你需要更多信息,请告诉我
要对5D图像张量应用数据增强,您可以:
(batch_size * nb_sets, h, w, channels)
的4D张量李>(batch_size, nb_sets, h, w, channels)
的5D张量李>例如,以下内容:
注意:未测试
相关问题 更多 >
编程相关推荐