【发布时间】:2021-05-18 00:19:08
【问题描述】:
我正在尝试将两个 .npy 文件输入到 tf.keras 中的编码器-解码器模型中。这些文件很大,不适合内存。要加载数据,我正在尝试以下策略:
mmap_enc = np.load('encoder.npy', mmap_mode='r')
mmap_dec = np.load('decoder.npy', mmap_mode='r')
mmap_target = np.load('target.npy', mmap_mode='r')
encoder_input_data = tf.data.Dataset.from_tensor_slices(mmap_enc ).batch(batch_size)
decoder_input_data = tf.data.Dataset.from_tensor_slices(mmap_dec).batch(batch_size)
target_data = tf.data.Dataset.from_tensor_slices(mmap_target).batch(batch_size)
然后,当我将 encoder_input_data、decoder_input_data 和 target_data 提供给模型时
model.fit(
x=[encoder_input_data, decoder_input_data],
y=target_data)
我收到以下错误
ValueError: 未能找到可以处理输入的数据适配器: (
包含类型 {" "}),
我确定模型是正确的,因为当我使用少量数组样本时,在保存和加载为 tf.data.Dataset 之前,拟合工作正常。
问候,
【问题讨论】:
-
我不明白你的策略 - 你仍在尝试将整个文件加载到内存中
-
@Andrey,嗯,我在想通过在
mmap模式下加载文件并使用tf.data.Dataset,整个文件不会加载到内存中。更糟糕的是,它甚至无法正常工作,并将错误抛出提到的错误!
标签: python numpy tensorflow keras tensorflow2.0