ChatGPTの実装
Tensorflow/Kerasを用いている
from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, UpSampling2D, Concatenate from tensorflow.keras.models import Model def unet_multi_output(input_shape, num_classes): inputs = Input(input_shape) # Contracting path c1 = Conv2D(64, (3, 3), activation='relu', padding='same')(inputs) p1 = MaxPooling2D((2, 2))(c1) c2 = Conv2D(128, (3, 3), activation='relu', padding='same')(p1) p2 = MaxPooling2D((2, 2))(c2) # Bottom layer c3 = Conv2D(256, (3, 3), activation='relu', padding='same')(p2) # Expansive path u1 = UpSampling2D((2, 2))(c3) c4 = Conv2D(128, (3, 3), activation='relu', padding='same')(u1) m1 = Concatenate()([c2, c4]) u2 = UpSampling2D((2, 2))(m1) c5 = Conv2D(64, (3, 3), activation='relu', padding='same')(u2) m2 = Concatenate()([c1, c5]) # Multi-output, for this example, num_classes=3 outputs = Conv2D(num_classes, (1, 1), activation='sigmoid')(m2) model = Model(inputs, outputs) return model # Example usage model = unet_multi_output((128, 128, 3), 3) # 128x128 images with 3 channels, 3 output masks model.compile(optimizer='adam', loss='binary_crossentropy') # Use binary_crossentropy for multi-label tasks