![](/img/trans.png)
[英]How to create a Neural Network using MLPClassifier from Scikit Learn using 5 X inputs and 1 Y output?
[英]How to create neural network with 35 inputs and 1 output?
我是机器学习的新手。 我正在使用 Keras 构建以下用于二进制分类的神经网络:图像
所以我需要 35x10 输入和 1 个二进制 output。 而且我还想一次在 1 个数据点上训练 model。 这是我试图运行的代码:
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.layers.normalization import BatchNormalization
model_online_1 = Sequential()
model_online_1.add(BatchNormalization(input_shape=tuple([grouped_X_train.shape[1]])))
model_online_1.add(Dense(35, batch_size=35, input_dim=10))
model_online_1.add(Activation('relu'))
model_online_1.add(Dropout(0.2))
model_online_1.add(Dense(35))
model_online_1.add(Activation('relu'))
model_online_1.add(Dropout(0.2))
model_online_1.add(Dense(1))
model_online_1.add(Activation('softmax'))
model_online_1.compile(loss='categorical_crossentropy', optimizer='adam')
batch_size = 1
nb_classes = 2
nb_epoch = 1
for i in range(no_of_samples):
# train on ith data point
model_online_1.fit(grouped_X_train[i].T, [grouped_Y1_train[i]],
batch_size, nb_epoch,
verbose=0)
在拟合时出现错误:
Traceback (most recent call last):
File "/home/natalia/PycharmProjects/raw_recognition/classification.py", line 139, in <module>
verbose=0)
File "/home/natalia/.local/lib/python3.6/site-packages/keras/engine/training.py", line 1154, in fit
batch_size=batch_size)
File "/home/natalia/.local/lib/python3.6/site-packages/keras/engine/training.py", line 637, in _standardize_user_data
training_utils.check_array_length_consistency(x, y, sample_weights)
File "/home/natalia/.local/lib/python3.6/site-packages/keras/engine/training_utils.py", line 244, in check_array_length_consistency
'and ' + str(list(set_y)[0]) + ' target samples.')
ValueError: Input arrays should have the same number of samples as target arrays. Found 10 input samples and 1 target samples.
Process finished with exit code 1
model 有什么问题? 最后一个密集层应该返回 1 output 还是我误解了这个?
更新:Grouped_X_train.shape: (26, 35, 10) Grouped_Y1_train.shape: (26,)
model_online_1.add(BatchNormalization(input_shape=(35,10)))
在第一层使用 BatchNorm 是一个不寻常的选择。
您再次在第二个密集层中指定input_dim
和batch_size
,这是另一个问题。 你如何弥补这些不存在的参数?
model_online_1.add(Dense(35))
sigmoid
而不是softmax
。 model_online_1.add(Activation('sigmoid'))
binary_crossentropy
model_online_1.compile(loss='binary_crossentropy', optimizer='adam')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.