【发布时间】:2022-01-18 03:07:24
【问题描述】:
我目前正在使用 Kears 为 MNIST 数据集构建自动编码器,这是我的代码:
import all the dependencies
from keras.layers import Dense,Conv2D,MaxPooling2D,UpSampling2D
from keras import Input, Model
from keras.datasets import mnist
import numpy as np
import matplotlib.pyplot as plt
encoding_dim = 15
input_img = Input(shape=(784,))
# encoded representation of input
encoded = Dense(encoding_dim, activation='relu')(input_img)
# decoded representation of code
decoded = Dense(784, activation='sigmoid')(encoded)
# Model which take input image and shows decoded images
autoencoder = Model(input_img, decoded)
# This model shows encoded images
encoder = Model(input_img, encoded)
# Creating a decoder model
encoded_input = Input(shape=(encoding_dim,))
# last layer of the autoencoder model
decoder_layer = autoencoder.layers[-1]
# decoder model
decoder = Model(encoded_input, decoder_layer(encoded_input))
autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
最后一步是编译步骤,但我需要使用 L1-norm 重建损失函数。从Keras losses description 看来他们没有这个功能。如何将 L1 范数重建损失函数应用于 autoencoder.compile() 函数?谢谢!
【问题讨论】:
标签: python tensorflow machine-learning keras mnist