【发布时间】:2017-05-22 11:55:50
【问题描述】:
我正在创建一个模型来分类输入波形是否包含 I2C 线的 SDA 的上升沿。
我的输入有 20000 个数据点和 100 个训练数据。
我最初在Keras 1D CNN: How to specify dimension correctly?Keras 1D CNN: How to specify dimension correctly?中找到了有关输入的答案
但是,我在激活函数中遇到错误:
ValueError: Error when checking target: expected activation_1 to have 3 dimensions, but got array with shape (100, 1)
我的模型是:
model.add(Conv1D(filters=n_filter,
kernel_size=input_filter_length,
strides=1,
activation='relu',
input_shape=(20000,1)))
model.add(BatchNormalization())
model.add(MaxPooling1D(pool_size=4, strides=None))
model.add(Dense(1))
model.add(Activation("sigmoid"))
adam = Adam(lr=learning_rate)
model.compile(optimizer= adam, loss='binary_crossentropy', metrics=['accuracy'])
model.fit(train_data, train_label,
nb_epoch=10,
batch_size=batch_size, shuffle=True)
score = np.asarray(model.evaluate(test_new_data, test_label, batch_size=batch_size))*100.0
我无法确定这里的问题。关于为什么激活函数需要一个 3D 张量。
【问题讨论】:
-
你想用这个网络解决什么任务?分类?回归?您能否提供更多关于模型编译、拟合和模型目标的详细信息?
-
这是二分类问题。我添加了更多代码。
标签: python machine-learning neural-network deep-learning keras