我正在使用本教程关于autoencoders:https://blog.keras.io/building-autoencoders-in-keras.html
所有代码都正常工作,但是当我为正则化参数设置10e-5时性能非常糟糕(结果很模糊),这是教程代码中定义的参数.实际上,我需要将正则化减少到10e-8以获得正确的输出.
我的问题如下:为什么结果与教程有如此不同?数据是相同的,参数是相同的,我没想到会有很大的差异.
我怀疑从2016年5月14日起Keras功能的默认行为已经改变(在所有情况下都执行自动批量标准化?).
输出:
用10e-5正则化(模糊); 50个时期后val_loss为0.2967,100个时期后为0.2774
使用10e-8正则化:50个历元后的val_loss为0.1080,100个历元后为0.1009.
没有正则化:50个时期后val_loss为0.1018,100个时期后为0.0944.
完整代码(供参考):
# Source: https://blog.keras.io/building-autoencoders-in-keras.html
import numpy as np
np.random.seed(2713)
from keras.layers import Input, Dense
from keras.models import Model
from keras import regularizers
encoding_dim = 32
input_img = Input(shape=(784,))
# add a Dense layer with a L1 activity regularizer
encoded = Dense(encoding_dim, activation='relu',
activity_regularizer=regularizers.l1(10e-5))(input_img)
decoded = Dense(784, activation='sigmoid')(encoded)
autoencoder = Model(input_img, decoded)
# this model maps an input to its encoded representation
encoder = Model(input_img, encoded)
# create …Run Code Online (Sandbox Code Playgroud) 我想用Python绘制堆积区域,并找出这个Pandas的功能:
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df.plot.area();
Run Code Online (Sandbox Code Playgroud)
然而,结果是奇怪的抗锯齿,将颜色混合在一起,如下面的2个图所示:

在文档中提供的示例中出现相同的问题.
你知道如何删除这种抗锯齿吗?(或者另一种意思是为线图的堆叠表示得到一个整洁的输出.)