【发布时间】:2021-11-17 19:11:49
【问题描述】:
这个问题是我上一个问题的后续问题,可以在 [这里][1] 找到。
我有两个数据集,其中包含三个训练参数和一个输出(二元分类)。我使用 [此处][2] 详细介绍的方法构建了一个生成器,以一次获取一个训练数据集来训练我的模型。但是一旦我运行我的模型,我就会收到传递的数据集的值错误。
file1 = "/home/Documents/t1.csv"
file2 = "/home/Documents/t2.csv"
files = [file1,file2]
model = Sequential()
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(64, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
def BatchGenerator(files):
for file in files:
df = pd.read_csv(file)
X_train = df.drop(["output"],axis=1)
y_train = df["output"]
yield (X_train, y_train)
n_epochs = 100
for epoch in range(n_epochs):
for (X_train, y_train) in BatchGenerator(files):
model.fit(X_train, y_train, batch_size = 32, nb_epoch = 1)
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
我收到以下错误:
ValueError Traceback (most recent call last)
<ipython-input-63-0b14a52c7fba> in <module>
37 for epoch in range(n_epochs):
38 for (X_train, y_train) in BatchGenerator(files):
---> 39 model.fit(X_train, y_train, batch_size = 32, nb_epoch = 1)
40 model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
~/anaconda3/lib/python3.7/site-packages/keras/engine/training.py in fit(self, x, y,
batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle,
class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps,
**kwargs)
948 sample_weight=sample_weight,
949 class_weight=class_weight,
--> 950 batch_size=batch_size)
951 # Prepare validation data.
952 do_validation = False
~/anaconda3/lib/python3.7/site-packages/keras/engine/training.py in
_standardize_user_data(self, x, y, sample_weight, class_weight, check_array_lengths,
batch_size)
662 'either a single '
663 'array or a list of arrays. '
--> 664 'You passed: x=' + str(x))
665 all_inputs.append(x)
666
ValueError: Please provide as model inputs either a single array or a list of arrays.
You passed: x= in1 in2 in3
0 2.1282 5.8809 0.0
1 2.9293 1.1067 0.0
2 2.5568 0.8797 0.0
3 2.9293 1.1067 0.0
4 0.0000 0.7009 0.0
... ... ... ...
1268 1.2085 0.9672 0.0
1269 0.0000 0.7009 0.0
1270 3.4218 3.6143 0.0
1271 1.9270 0.8991 0.0
1272 2.1109 0.8390 0.0
[1273 rows x 3 columns]
任何帮助将不胜感激。谢谢 [1]:Training MLP on multiple csv files [2]:Training a Neural Network with Multiple Datasets (Keras)
【问题讨论】:
-
嗨!你能检查类似的线程以获得答案吗?您可能需要将输入数据转换为单个数组。 stackoverflow.com/questions/58809751/…stackoverflow.com/questions/59512255/…