【发布时间】:2023-02-04 19:30:22
【问题描述】:
我是神经网络的新手,我尝试使用 keras 进行 mlp 文本分类。每次我运行代码时,它都会得到不同的 val 损失和 val 准确性。每次我重新运行它时,Val loss 都会增加,val accuracy 会减少。我正在使用的代码是这样的:
#Split data training and testing (80:20)
Train_X2, Test_X2, Train_Y2, Test_Y2 = model_selection.train_test_split(dataset['review'],dataset['sentiment'],test_size=0.2, random_state=1)
Encoder = LabelEncoder()
Train_Y2 = Encoder.fit_transform(Train_Y2)
Test_Y2 = Encoder.fit_transform(Test_Y2)
Tfidf_vect2 = TfidfVectorizer(max_features=None)
Tfidf_vect2.fit(dataset['review'])
Train_X2_Tfidf = Tfidf_vect2.transform(Train_X2)
Test_X2_Tfidf = Tfidf_vect2.transform(Test_X2)
#Model
model = Sequential()
model.add(Dense(100, input_dim= 1148, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))
opt = Adam (learning_rate=0.01)
model.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy'])
model.summary()
from keras.backend import clear_session
clear_session()
es = EarlyStopping(monitor="val_loss",mode='min',patience=10)
history = model.fit(arr_Train_X2_Tfidf, Train_Y2, epochs=100,verbose=1, validation_split=0.2,validation_data=(arr_Test_X2_Tfidf, Test_Y2), batch_size=32, callbacks =[es])
我尝试使用 clear_session() 来使模型不以先前训练的计算权重开始。但它仍然得到差异值。如何解决?谢谢
【问题讨论】:
-
请提供完整代码
-
@mujjiga 很高兴。我已经添加了完整的代码
标签: python keras neural-network mlp