Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras:当我使用fit#u生成器时,损耗不会';不要改变。但是fit很管用_Keras - Fatal编程技术网

Keras:当我使用fit#u生成器时,损耗不会';不要改变。但是fit很管用

Keras:当我使用fit#u生成器时,损耗不会';不要改变。但是fit很管用,keras,Keras,我有一个很大的数据集要在Keras上训练,为了避免“内存错误”,我尝试使用fit_生成器函数。奇怪的是,当我使用fit_generator时,损耗似乎没有改变,但fit函数运行良好 无论fir_gen或fit函数是什么,数据集和其他代码都是相同的 这是一个lstm-seq2seq模型 我搜索了很长时间,发现另外两个问题似乎和我一样。 1. 根据本文,我更改了批处理大小,但它不起作用。 当我试图将“收益率”改为回报率时,它给了我一个错误。 2. 这篇文章实际上没有答案 model.fit_gene

我有一个很大的数据集要在Keras上训练,为了避免“内存错误”,我尝试使用fit_生成器函数。奇怪的是,当我使用fit_generator时,损耗似乎没有改变,但fit函数运行良好

无论fir_gen或fit函数是什么,数据集和其他代码都是相同的

这是一个lstm-seq2seq模型

我搜索了很长时间,发现另外两个问题似乎和我一样。 1. 根据本文,我更改了批处理大小,但它不起作用。 当我试图将“收益率”改为回报率时,它给了我一个错误。 2. 这篇文章实际上没有答案

model.fit_generator(generate_train(batch_size=200), 
                    steps_per_epoch=5,
                    epochs=100, 
                    verbose=1, 
                    callbacks=callbacks_list, 
                    class_weight=None, 
                    max_queue_size=10, 
                    workers=1, 
                    use_multiprocessing=False, 
                    shuffle=False, 
                    initial_epoch=initial_epoch
                    )
当我使用fit()时:

使用fit_generator()时:


我已经找到了一个解决办法

我用“yield”打印来自生成器的所有数据,发现我错误地重写了每个历元的训练数据


因此,原始数据正在发生变化,这导致了稳定的损失。

我已经找到了一个解决方案

我用“yield”打印来自生成器的所有数据,发现我错误地重写了每个历元的训练数据


所以原始数据正在改变,这导致了稳定的损失。

@abunickabhi它对我有效,为什么你认为它没有用?@abunickabhi它对我有效,为什么你认为它没有用?
def generate_train(batch_size):
    steps=0
    context_ = np.load(main_path + 'middle_data/context_indexes.npy')
    final_target_ = np.load(main_path + 'middle_data/target_indexes.npy')
    context_ = context_[:1000]
    final_target_ = final_target_[:1000]
    while True:
        context = context_[steps:steps+batch_size]
        final_target = final_target_[steps:steps+batch_size]

        processing. . .
        outs = . . .

        yield [context, final_target], outs
        steps += batch_size
        if steps == 1000:
            steps = 0
Epoch 1/30 loss: 2.5948 - acc: 0.0583 
Epoch 2/30 loss: 2.0840 - acc: 0.0836 
Epoch 3/30 loss: 1.9226 - acc: 0.0998 
Epoch 4/30 loss: 1.8286 - acc: 0.1086 
Epoch 5/30 loss: 1.7399 - acc: 0.1139 
Epoch 6/30 loss: 1.6509 - acc: 0.1192 
Epoch 7/30 loss: 1.5518 - acc: 0.1247 
Epoch 8/30 loss: 1.4330 - acc: 0.1316 
Epoch 9/30 loss: 1.3117 - acc: 0.1454 
Epoch 10/30 loss: 1.1872 - acc: 0.1657 
Epoch 11/30 loss: 1.0720 - acc: 0.1893 
Epoch 12/30 loss: 0.9589 - acc: 0.2169 
. . . 
Epoch 1/100 loss: 3.4926 - acc: 0.0370
Epoch 2/100 loss: 2.7239 - acc: 0.0388
Epoch 3/100 loss: 2.6030 - acc: 0.0389
Epoch 4/100 loss: 2.5727 - acc: 0.0408
Epoch 5/100 loss: 2.5628 - acc: 0.0366
Epoch 6/100 loss: 2.5513 - acc: 0.0420
Epoch 7/100 loss: 2.5475 - acc: 0.0387
Epoch 8/100 loss: 2.5508 - acc: 0.0407
Epoch 9/100 loss: 2.5490 - acc: 0.0418
Epoch 10/100 loss: 2.5419 - acc: 0.0401