【发布时间】:2020-08-19 12:26:23
【问题描述】:
输入图像被正则化为 (0, 1) 并且输出是具有伪高斯分布 (-∞,∞) 的 float32 值
拟合后,训练和验证准确度均超过 0.999 但是当使用训练集和验证集进行预测时,它不会自我复制。
预测输出仅显示负值(和少数正相同值)
这个问题是不是激活函数选择错误造成的?
我也尝试过,而不是'relu'、'linear'、'sigmoid'。 结果是一样的。
model = Sequential()
model.add(Convolution1D(filters=64, kernel_size=2, input_shape=(img_width, img_height)))
model.add(Activation("relu"))
model.add(MaxPooling1D(pool_size=(2)))
model.add(Convolution1D(filters=32, kernel_size=2))
model.add(Activation("relu"))
model.add(MaxPooling1D(pool_size=(2)))
model.add(Flatten())
model.add(Dense(256))
model.add(Activation("relu"))
model.add(Dense(1, activation='linear'))
model.compile(loss='mse', optimizer=optimizers.RMSprop(lr=0.0001), metrics=['accuracy'])
这样预测,
model.fit(x_train, y_train, epochs=2,
validation_data=(x_valid, y_valid),
batch_size=2048,
shuffle='batch',
use_multiprocessing=True)
# right after fitting
result = model.predict(x_train, use_multiprocessing=True)
【问题讨论】:
-
这是一个回归问题,accuracy是一个分类指标,用accuracy做regression是没有意义的。您应该只关注损失或使用 mae 作为指标
-
问题是数据集中的空数据点或无意义的数据点。我已经消除了它们,但它确实可以部分复制。
标签: python tensorflow machine-learning keras deep-learning