我正在尝试制作一个接受两个输入的多输入 Keras 模型。一个输入是图像,第二个输入是一维文本。我将图像的路径存储在数据框中,然后将图像附加到这样的列表中:
from tqdm import tqdm
train_images = []
for image_path in tqdm(train_df['paths']):
byte_file = tf.io.read_file(image_path)
img = tf.image.decode_png(byte_file)
train_images.append(img)
一维文本输入存储在列表中。对验证集和测试集重复此过程。然后我制作一个数据集,如下所示:
train_protein = tf.expand_dims(padded_train_protein_encode,axis=2)
training_dataset = tf.data.Dataset.from_tensor_slices(((train_protein,train_images),train_Labels))
training_dataset = training_dataset.batch(20)
val_protein = tf.expand_dims(padded_val_protein_encode,axis=2)
validation_dataset = tf.data.Dataset.from_tensor_slices(((val_protein,val_images),validation_Labels))
validation_dataset = validation_dataset.batch(20)
test_protein = tf.expand_dims(padded_test_protein_encode,axis=2)
test_dataset = tf.data.Dataset.from_tensor_slices(((test_protein,test_images),test_Labels))
test_dataset = test_dataset.batch(20)
我在 Google colab 中运行此程序,即使使用高内存选项,程序也会因内存不足而崩溃。解决此问题的最佳方法是什么?
我已经研究了 tf.data.Dataset.from_generator 作为一个选项,但是当有两个输入时我无法弄清楚如何使它工作。有人可以帮忙吗?