def report(self,train_data,
test_data=None,
train_data_to=None,
test_data_to=None,
batch_size=1000,
**kwargs):
test_data = train_data if test_data is None else test_data
train_data_to = train_data if train_data_to is None else train_data_to
test_data_to = test_data if test_data_to is None else test_data_to
opts = {'verbose':0,'batch_size':batch_size}
def test_both(msg, fn):
print(msg.format(fn(train_data)))
if test_data is not None:
print((msg+" (validation)").format(fn(test_data)))
self.autoencoder.compile(optimizer='adam', loss=mse)
test_both("Reconstruction MSE: {}",
lambda data: self.autoencoder.evaluate(data,data,**opts))
test_both("Reconstruction MSE (gaussian 0.3): {}",
lambda data: self.autoencoder.evaluate(gaussian(data),data,**opts))
test_both("Reconstruction MSE (salt 0.06): {}",
lambda data: self.autoencoder.evaluate(salt(data),data,**opts))
test_both("Reconstruction MSE (pepper 0.06): {}",
lambda data: self.autoencoder.evaluate(pepper(data),data,**opts))
# self.autoencoder.compile(optimizer=optimizer, loss=bce)
# test_both("Reconstruction BCE: {}",
# lambda data: self.autoencoder.evaluate(data,data,**opts))
# test_both("Noise reconstruction BCE (gaussian 0.3): {}",
# lambda data: self.autoencoder.evaluate(gaussian(data),data,**opts))
# test_both("Noise reconstruction BCE (salt 0.1): {}",
# lambda data: self.autoencoder.evaluate(salt(data),data,**opts))
# test_both("Noise reconstruction BCE (pepper 0.1): {}",
# lambda data: self.autoencoder.evaluate(pepper(data),data,**opts))
test_both("Latent activation: {}",
lambda data: self.encode_binary(train_data,batch_size=batch_size,).mean())
return self
评论列表
文章目录