我正在通过data generator
下面添加的a 生成我的图像字幕模型的训练数据。此模型基于此处提供的模型。如何在训练期间以类似的方式生成和设置验证数据?我确实有验证图像及其标题的功能。
数据生成器:
def data_generator(all_train_captions, train_features, wordtoix, max_length, num_photos_per_batch, vocab_size):
X1, X2, y = list(), list(), list()
n = 0
# loop for ever over images
while True:
for image_id, desc in all_train_captions.items():
image_id = image_id.strip()
n += 1
# retrieve the photo feature
photo = train_features[image_id]
# encode the sequence
seq = [wordtoix[word] for word in desc.split(' ') if word in wordtoix]
# split one sequence into multiple X, y pairs
for i in range(1, len(seq)):
# split into input and output pair
in_seq, out_seq = seq[:i], seq[i]
# pad input sequence
in_seq = pad_sequences([in_seq], maxlen=max_length)[0]
# encode output sequence
out_seq = to_categorical([out_seq], num_classes=vocab_size)[0]
# store
X1.append(photo)
X2.append(in_seq)
y.append(out_seq)
# yield the batch data
if n == num_photos_per_batch:
yield [[array(X1), array(X2)], array(y)]
X1, X2, y = list(), list(), list()
n = 0
模型训练
generator = data_generator(all_train_captions, encoding_train, wordtoix, max_caption_length,
number_pics_per_bath, vocab_size)
history = model.fit_generator(generator, epochs=epochs, steps_per_epoch=steps, callbacks=callbacks, verbose=1)
psKeras
在TensorFlow
后端用作深度学习库。
你需要另一个发电机。
一种用于训练,一种用于验证。只需创建两个生成器,一个使用训练数据,另一个使用验证数据。
train_generator = data_generator(all_train_captions, encoding_train, wordtoix, max_caption_length,
number_pics_per_bath, vocab_size)
val_generator = data_generator(all_val_captions, encoding_val, wordtoix, max_caption_length,
number_pics_per_bath, vocab_size)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句