Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 度量与损失函数keras_Python_Tensorflow_Keras_Neural Network_Conv Neural Network - Fatal编程技术网

Python 度量与损失函数keras

Python 度量与损失函数keras,python,tensorflow,keras,neural-network,conv-neural-network,Python,Tensorflow,Keras,Neural Network,Conv Neural Network,代码- 不幸的是,我使用二进制交叉熵作为损失,“准确度”作为度量。我得到了90%以上的准确率 然后,我找到了这个链接 阅读第一个答案后,我使用二进制交叉熵作为损失,分类交叉熵作为度量 尽管我改变了这一点,但val_acc并没有改善,它显示了大约62%。怎么办 我尽量降低了模型的复杂度来学习数据,但准确性并没有提高。我错过了什么吗 数据集形状,x_列为(800,32)y_列为(200,32)y_列为(800,10),y_测试为(200,10)。在输入网络之前,我在x中使用标准标量,并将x_序列和x

代码-

不幸的是,我使用二进制交叉熵作为损失,“准确度”作为度量。我得到了90%以上的准确率

然后,我找到了这个链接

阅读第一个答案后,我使用二进制交叉熵作为损失,分类交叉熵作为度量

尽管我改变了这一点,但val_acc并没有改善,它显示了大约62%。怎么办

我尽量降低了模型的复杂度来学习数据,但准确性并没有提高。我错过了什么吗

数据集形状,x_列为(800,32)y_列为(200,32)y_列为(800,10),y_测试为(200,10)。在输入网络之前,我在x中使用标准标量,并将x_序列和x_测试形状更改为(800,32,1)和(200,32,1)


谢谢

如果您想使用
BCE
,那么输出激活功能应该是
sigmoid
而不是
softmax
@Vishak Raj:您能告诉我们您的问题是否通过将激活功能从
softmax
更改为
sigmoid
得到解决吗。如果未解析,如果您的数据是图像数据,则将像素值除以255,而不是使用标准定标器会有所帮助。谢谢如果您想使用
BCE
,那么输出激活功能应该是
sigmoid
而不是
softmax
@Vishak Raj:您能告诉我们您的问题是否通过将激活功能从
softmax
更改为
sigmoid
得到解决吗。如果未解析,如果您的数据是图像数据,则将像素值除以255,而不是使用标准定标器会有所帮助。谢谢
def define_model():
    # channel 1

    inputs1 = Input(shape=(32,1))
    conv1 = Conv1D(filters=256, kernel_size=2, activation='relu')(inputs1)
    #bat1 = BatchNormalization(momentum=0.9)(conv1)
    pool1 = MaxPooling1D(pool_size=2)(conv1)
    flat1 = Flatten()(pool1)

    # channel 2

    inputs2 = Input(shape=(32,1))
    conv2 = Conv1D(filters=256, kernel_size=4, activation='relu')(inputs2)

    pool2 = MaxPooling1D(pool_size=2)(conv2)

    flat2 = Flatten()(pool2)

    # channel 3

    inputs3 = Input(shape=(32,1))
    conv3 = Conv1D(filters=256, kernel_size=4, activation='relu')(inputs3)
    pool3 = MaxPooling1D(pool_size=2)(conv3)
    flat3 = Flatten()(pool3)

    # channel 4

    inputs4 = Input(shape=(32,1))
    conv4 = Conv1D(filters=256, kernel_size=6, activation='relu')(inputs4)

    pool4 = MaxPooling1D(pool_size=2)(conv4)

    flat4 = Flatten()(pool4)

    # merge

    merged = concatenate([flat1, flat2, flat3, flat4])

    # interpretation
    dense1 = Dense(128, activation='relu')(merged)
    dense2 = Dense(96, activation='relu')(dense1)

    outputs = Dense(10, activation='softmax')(dense2)
    model = Model(inputs=[inputs1, inputs2, inputs3, inputs4 ], outputs=outputs)
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=[categorical_accuracy])
plot_model(model, show_shapes=True, to_file='/content/q.png')

    return model

model_concat = define_model()

# fit model
print()
red_lr= ReduceLROnPlateau(monitor='val_loss',patience=2,verbose=2,factor=0.001,min_delta=0.01)
check=ModelCheckpoint(filepath=r'/content/drive/My Drive/Colab Notebooks/gen/concatcnn.hdf5', verbose=1, save_best_only = True)


History = model_concat.fit([X_train, X_train, X_train, X_train], y_train , epochs=20, verbose = 1 ,validation_data=([X_test, X_test, X_test, X_test], y_test), callbacks = [check, red_lr], batch_size = 32)

model_concat.summary