- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有点困惑如何在 keras
中使用 fit_generator
。
举例来说:
使用 fit
我们只是:
x, y = load_data()
model.fit(x=x, y=y, batch_size=512, epochs=10)
其中 load_data
加载所有数据。
现在如何用 fit_generator
做同样的事情。
我不清楚在使用 fit_generator
时是如何处理的。如果我有以下生成器:
def data_generator():
for x, y in load_data_per_line():
yield x, y
在上面的生成器中,每次产生
一个数据点。并且:
def data_generator_2():
x_output = []
y_output = []
i = 0
for x, y in load_data_per_line():
x_output[i] = x
y_output[i] = y
i = i + 1
if i == batch_size:
yield x_output, y_output
i = 0
x_output = []
y_output = []
在上面的生成器中,每次 yield
批量数据点(在本例中为 512)。
要实现与 fit
相同但使用 fit_generator
:
model.fit_generator(data_generator(), steps_per_epoch=10000 / 512, epochs=10)
或
model.fit_generator(data_generator_2(), steps_per_epoch=10000 / 512, epochs=10)
或者两者都错了(fit_generator
和 data_generator
)?如果其中任何一个是正确的,是否保证所有数据点都将被处理并且也被顺序处理?
任何见解都是有用的
最佳答案
生成器 2 几乎没问题,但它应该更好地返回 numpy 数组:
yield np.asarray(x_output),np.asarray(y_output)
此外,它应该是无限的:
while True:
#the code inside to loop infinitely
第一个不会返回批处理并且会失败。
您可能会在 steps_per_epoch
中遇到问题,因为 10000 不是 512 的倍数。您需要整数步长。您可以在生成器内部检查 if i == 10000:
并将较小的批处理作为最后一批传递。
然后你有 (10000//512) + (10000 % 512)
步骤或批处理。
所有批处理都会被顺序读取,但是keras会自动打乱这些批处理的内容,使用suffle=False
。如果您使用多线程(不是这种情况),那么您需要创建线程安全生成器或使用 keras Sequence
。
关于python - 如何: fit_generator in keras,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570172/
我如何使用 keras 函数 fit_generator() 训练并同时保存具有最低验证损失的模型权重? 最佳答案 您可以在定义检查点时设置save_best_only=True: from kera
我应该何时以及如何使用 fit_generator?fit 和 fit_generator 有什么区别? 最佳答案 如果您已准备好所有必要方面的数据和标签,并且可以简单地将它们分配给数组 x 和 y,
使用 Keras 训练 CNN,即使我做了 model.compile,keras。 fit_generator 抛出一个运行时错误,提示在使用 fit 之前先编译我的模型。 Error: Using
我目前正在生成一个data_generate(batch_size),它接受batch_size 作为参数。 我的网络是多输入网络,有 33 个形状为 (45,8,3) 的输入 如果批量大小 = 1
def Generate(): i = 0 while 1: i = i%int(Numb/batch_size) my_input_batch = my_input[i*batch_
我有一个 Keras 模型,有 4 个张量输入和 1 个数组输出。使用 model.fit 可以正常工作方法 model.fit([inputUM, inputMU, inputUU, inputMM
我有一个包含 9 列的数据集,最后一个是带标题的 csv 格式的目标变量。我正在尝试编写一个生成器来在 keras 中训练模型。代码如下。训练在第一个时期运行,但在完成之前就永远停止/挂起。 from
我正在制作一个输入形状为 (56088,22050,1) 的语音识别模型,它作为一个整体可以从 .npy 文件(大小约为 5GB)加载到内存中,但我想弄清楚一个更好的方法。我遇到了 keras fit
我正在使用 Keras 训练神经网络。由于数据集的大小,我需要使用生成器和 fit_generator() 方法。我正在关注本教程: https://stanford.edu/~shervine/bl
我尝试使用 TensorFlow、Keras 和 ImageDataGenerator 从头开始创建一个模型,但它没有按预期进行。我仅使用生成器加载图像,因此不使用数据增强。有两个包含训练数据和测
我正在尝试调整 Keras MNIST Siamese example使用发电机。 关于example ,我们有: model.fit([tr_pairs[:, 0], tr_pairs[:, 1]]
我正在使用从文件读取数据的 fit_generator,当它到达文件末尾时,它会从下一个文件加载数据。我还在 keras 中使用有状态 RNN,因此我需要手动重置状态,在这种情况下,每次生成器加载新文
我正在尝试为我的 Keras lstm 模型编写一个生成器。将它与 fit_generator 方法一起使用。我的第一个问题是我的生成器应该返回什么?一批?序列?Keras 文档中的示例为每个数据条目
我有点困惑如何在 keras 中使用 fit_generator。 举例来说: 我们有 10000 个数据点 我们要运行 10 个 epoch 批量大小为 512 使用 fit 我们只是: x, y
我正在尝试为具有 3 个输入和一个处理文本数据的单个输出的模型实现自定义数据生成器,如下所示: # dummy model input_1 = Input(shape=(None,)) input_2
我有一个使用以下代码声明的 Keras 模型: model = tf.keras.models.Sequential() model.add(tf.keras.layers.LSTM(units=50
import os from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequenti
我在 keras 的 fit_generator 函数中使用的自定义生成器函数返回的 numpy 数组的形状方面遇到了一个看似简单的问题。 生成器函数与此类似: def data_generator(
我关注了this tutorial为我的 Keras 模型创建自定义生成器。这是一个显示我面临的问题的 MWE: import sys, keras import numpy as np import
上下文: 我目前正在使用带有 Tensorflow 后端的 Keras 进行时间序列预测,因此研究了提供的教程 here . 按照本教程,我来到了 fit_generator() 的生成器的位置。方法
我是一名优秀的程序员,十分优秀!