3000 개의 이미지 (320 * 320) 모양과 촬영 시간 및 라벨이 있습니다. 이제이 두 가지 유형의 데이터 (이미지 및 시간)를 사용하여 라벨을 예측하고 싶습니다. 주요 코드는 다음과 같이케라 (keras) 있음, 다른 유형의 여러 입력 데이터를 맞추는 방법
model.fit([main_input, additional_data], [labels],
epochs=50, batch_size=32)
그러나, 어떻게 데이터 augumention를 사용하기 때문에 두 fit_generator를 사용하고도 시간 기능을 사용하려면 :
num_classes=10
image_out=GlobalMaxPooling2D()(x)
x=keras.layers.advanced_activations.LeakyReLU(alpha=0.3)(x)
#add time
time_input = Input(shape=(1,), name='time_input')
x = keras.layers.concatenate([image_out, time_input],axis=-1)
x=Dense(num_classes, activation='sigmoid')(x)
predictions = Dense(num_classes,activation='softmax',name='main_output')(x)
은 내가 모델을 양성하는 코드를 다음 사용할 수 있습니다 알고 모델 훈련? 이런 새로운 발전기를 정의해야합니까?
def generator_for2img(X1, X2, Y,batch_size):
datagen = ImageDataGenerator(featurewise_center=False, # set input mean to 0 over the dataset
samplewise_center=False, # set each sample mean to 0
featurewise_std_normalization=False, # divide inputs by std of the dataset
samplewise_std_normalization=False, # divide each input by its std
zca_whitening=False, # apply ZCA whitening
rotation_range=0, # randomly rotate images in the range (degrees, 0 to 180)
width_shift_range=0.1, # randomly shift images horizontally (fraction of total width)
height_shift_range=0.1, # randomly shift images vertically (fraction of total height)
horizontal_flip=True, # randomly flip images
vertical_flip=False) # randomly flip image
time_generator=Generator()
datagen.fit(X1)
genX1 = datagen.flow(X1,Y,batch_size=batch_size)
genX2 = time_generator.flow(X2,batch_size=batch_size)
while True:
X1i = genX1.next()
X2i = genX2.next()
yield [X1i[0], X2i ], X1i[1]
model.fit_generator(generator_for2img(X_train_cv, X_train_time, y_train_cv,batch_size),
epochs=epochs,
validation_data=([X_valid,X_valid_time],y_valid),
workers=4,