InvalidArgumentError:호환되지 않는 모양:[3,256,256,2]vs[3,150,150,2]

0

질문

내가 원하는 모델을 구축하기 위해 화하는 이미지,나도 이 코드를 실행하지만 내가 직면하는 호환되지 않는 모양:[3,256,256,2]vs[3,150,150,2]오류가 있습니다.

#CNN model

from keras.layers import Conv2D, Conv2DTranspose, UpSampling2D
from keras.layers import Activation, Dense, Dropout, Flatten, InputLayer
from tensorflow.keras.layers import (
    BatchNormalization, SeparableConv2D, MaxPooling2D, Activation, Flatten, Dropout, Dense
)
from keras.callbacks import TensorBoard, ModelCheckpoint
from keras.models import Sequential

model = Sequential()

#Input Layer
model.add(Conv2D(64, (3, 3), input_shape=(256, 256, 1), activation='relu', padding='same'))

#Hidden Layers
model.add(Conv2D(64, (3, 3), activation='relu', padding='same', strides=2))
model.add(Conv2D(128, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(128, (3, 3), activation='relu', padding='same', strides=2))
model.add(Conv2D(256, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(256, (3, 3), activation='relu', padding='same', strides=2))
model.add(Conv2D(512, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(256, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(128, (3, 3), activation='relu', padding='same'))
model.add(UpSampling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu', padding='same'))
model.add(UpSampling2D((2, 2)))
model.add(Conv2D(32, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(2, (3, 3), activation='tanh', padding='same'))
model.add(UpSampling2D((2, 2)))



#Compiling the CNN
model.compile(optimizer='rmsprop', loss='mse', metrics = ['accuracy'])
#model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

오류가 발생한 때 나는 코드를 실행하는게 맞 모델

# Image transformer
datagen = ImageDataGenerator(
        shear_range=0.2,
        zoom_range=0.2,
        rotation_range=20,
        horizontal_flip=True)

import matplotlib.pyplot as plt

# Image transformer
datagen = ImageDataGenerator(
        shear_range=0.2,
        zoom_range=0.2,
        rotation_range=20,
        horizontal_flip=True)

# Generate training data
batch_size = 10
def image_a_b_gen(batch_size):
    for batch in datagen.flow(Xtrain, batch_size=batch_size ):
        lab_batch = rgb2lab(batch)
        X_batch = lab_batch[:,:,:,0]
        Y_batch = lab_batch[:,:,:,1:] / 128
        yield (X_batch.reshape(X_batch.shape+(1,)), Y_batch)


        # Train model      
tensorboard = TensorBoard(log_dir="/output/beta_run")
trainedmodel = model.fit(image_a_b_gen(batch_size), callbacks=[tensorboard],epochs=100, steps_per_epoch=30)

오류 메시지:

 InvalidArgumentError                      Traceback (most recent call last)
    <ipython-input-112-7a987e785f95> in <module>
         29         # Train model
         30 tensorboard = TensorBoard(log_dir="/output/beta_run")
    ---> 31 trainedmodel = model.fit(image_a_b_gen(batch_size), callbacks=[tensorboard],epochs=100, steps_per_epoch=30)
         32 
         33 
    
    ~\anaconda3\lib\site-packages\keras\utils\traceback_utils.py in error_handler(*args, **kwargs)
         65     except Exception as e:  # pylint: disable=broad-except
         66       filtered_tb = _process_traceback_frames(e.__traceback__)
    ---> 67       raise e.with_traceback(filtered_tb) from None
         68     finally:
         69       del filtered_tb
    
    ~\anaconda3\lib\site-packages\tensorflow\python\eager\execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
         56   try:
         57     ctx.ensure_initialized()
    ---> 58     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
         59                                         inputs, attrs, num_outputs)
         60   except core._NotOkStatusException as e:
    
    InvalidArgumentError:  Incompatible shapes: [3,256,256,2] vs. [3,150,150,2]
         [[node gradient_tape/mean_squared_error/BroadcastGradientArgs
     (defined at C:\Users\HudaA\anaconda3\lib\site-packages\keras\optimizer_v2\optimizer_v2.py:464)
    ]] [Op:__inference_train_function_33345]

나를 인쇄 요약의 층이지만 나는 찾을 수 없습니다 문제

1

최고의 응답

0

응답에 오류가 있습니다.

  1. 예상 출력 모델로부터 입력을 위해 다음과 같(3,256,256,1)가(3,256,256,2).
  2. 추적 보여주는 뭔가를 엉망으로 mse(손실능)부분의 것들입니다.

솔루션:

의 모양을 확인 X_batch.을 바꿀(X_batch.모+(1)및 Y_batch 로에서 출력 기능 image_a_b_gen.

나의 추측은 당신의 Y_batch 지 않습의 올바른 모양입니다.

2021-11-22 00:51:15

체크 모양의 X_batch 및 Y_batch,그것은(150,150,1)어떤 차원에서 이미지의합니다. 당신은 나에게 도움이 될 수을 변경하려면 어떻게 해야 하나요 매개변수의 계층에 맞게 데이터 집합 내?
Huda Alamoudi

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................