1、截断长度不是越长越好的,可能要根据具体任务进行尝试
数据集:IMDB
模型:model = Sequential(layers=[
Embedding(len(new_word_index.keys()), 16),
LSTM(128, dropout=0.5),
Dense(512),
Dense(1, activation="sigmoid")
])
model.compile(optimizer="adam", loss='binary_crossentropy',
metrics=["accuracy"])
model.fit(x=train_x, y=train_y, epochs=10,
validation_data=(test_x, test_y))
样本的长度统计如下:
截断长度与准确率的关系如下:
2、复杂的网络结构可以学习的更好,但也有可能过拟合
数据集:CIFAR10
模型和准确率:
# model = Sequential(layers=[
# Dense(1024, input_shape=(32, 32, 3)),
# Conv2D(128, 3, padding="same"),
# MaxPool2D(padding="same"),
# Conv2D(64, 3, padding="same"),
# MaxPool2D(padding="same"),
# Conv2D(32, 3, padding="same"),
# MaxPool2D(padding="same"),
# Conv2D(128, 3, padding="same"),
# MaxPool2D(padding="same"),
# Flatten(),
# Dense(10, activation="softmax")
# ])
# # acc: 0.8098, 0.8130
# model = Sequential(layers=[
# Dense(1024, input_shape=(32, 32, 3)),
# Conv2D(128, 3, padding="same"),
# MaxPool2D(padding="same"),
# Conv2D(64, 3, padding="same"),
# MaxPool2D(padding="same"),
# Conv2D(32, 3, padding="same"),
# MaxPool2D(padding="same"),
# Flatten(),
# Dense(10, activation="softmax")
# ])
# # acc: 0.7508, 0.7554
model = Sequential(layers=[
Dense(1024, input_shape=(32, 32, 3)),
Conv2D(128, 3, padding="same"),
MaxPool2D(padding="same"),
Conv2D(64, 3, padding="same"),
MaxPool2D(padding="same"),
Flatten(),
Dense(10, activation="softmax")
])
# acc: 0.7572,0.7559,0.7591
网友评论