Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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
Python fit_生成器期望所有神经网络层的输入?_Python_Keras - Fatal编程技术网

Python fit_生成器期望所有神经网络层的输入?

Python fit_生成器期望所有神经网络层的输入?,python,keras,Python,Keras,Keras的新特性,并构建了具有两个密集层的神经网络。内存中的数据太多,所以我使用fit_generator函数,但得到的错误是ValueError:没有为“稠密_2”提供数据。在:['dense_2']中需要每个键的数据。下面是一个小例子: from keras.models import Sequential from keras.layers import Dense import numpy as np model = Sequential([ Dense(100, input

Keras的新特性,并构建了具有两个密集层的神经网络。内存中的数据太多,所以我使用fit_generator函数,但得到的错误是
ValueError:没有为“稠密_2”提供数据。在:['dense_2']
中需要每个键的数据。下面是一个小例子:

from keras.models import Sequential
from keras.layers import Dense
import numpy as np

model = Sequential([
    Dense(100, input_shape=(1924800,), activation='relu'),
    Dense(1, activation='sigmoid')
])

model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])

def generate_arrays_from_files(path, batch_size=50):
    while True:
        # Do things....
        yield ({'dense_1_input': np.asarray(outdata)}, {'output': np.asarray(outlabels)})

model.fit_generator(generate_arrays_from_files(path), steps_per_epoch=5, epochs=10)

编辑:忘记了编译行

您不需要在输入中指定层,而且显然不需要将数据传递到第二个密集层。请注意,最好使用Keras生成器,您可以创建自定义生成器,如或

您还需要编译您的模型

从keras.models导入
从keras.layers导入稠密
将numpy作为np导入
模型=顺序([
密集(100,输入_形状=(1924800,),激活='relu'),
密集型(1,激活=乙状结肠)
])
优化器=keras.optimizers.Adam(lr=1e-3)
model.compile(loss='binary\u crossentropy',
优化器=优化器,
指标=[‘准确度’])
def从_文件生成_数组(路径,批量大小=50):
尽管如此:
#做事。。。。
产量np.asarray(outdata),np.asarray(EXLABELS)
model.fit_生成器(从_文件(路径)生成_数组,每个_epoch的步数=5,epoch=10)

顺便问一下,将
(1924800,)
的向量输入模型是正常的吗?

我有一个编译行,只是在复制粘贴中遗漏了它。对于我正在处理的数据,每个数据点实际上都是
(1924800,)
。删除字典标签似乎已经解决了这个问题——我正在处理[link](keras.io)上发布的示例。谢谢