【发布时间】:2018-09-13 00:58:17
【问题描述】:
我正在尝试使用我在 Keras 示例中找到的变分自动编码器的实现 (https://github.com/keras-team/keras/blob/master/examples/variational_autoencoder.py)。
我刚刚重构了代码,以便在 Jupyter 笔记本中更轻松地使用它(我的代码:https://github.com/matbell/Autoencoders/blob/master/models/vae.py)。
但是,当我尝试根据我的数据拟合模型时,我得到以下输出:
Autoencoders/models/vae.py:69: UserWarning: Output "dense_5" missing from loss dictionary. We assume this was done on purpose, and we will not be expecting any data to be passed to "dense_5" during training.
self.vae.compile(optimizer='rmsprop')
Train on 15474 samples, validate on 3869 samples
Epoch 1/50
15474/15474 [==============================] - 1s 76us/step - loss: nan - val_loss: nan
Epoch 2/50
15474/15474 [==============================] - 1s 65us/step - loss: nan - val_loss: nan
Epoch 3/50
15474/15474 [==============================] - 1s 69us/step - loss: nan - val_loss: nan
Epoch 4/50
15474/15474 [==============================] - 1s 62us/step - loss: nan - val_loss: nan
所有训练时期的损失都保持不变。
我不是深度学习和神经网络领域的专家,所以也许我遗漏了一些东西......
这是输入数据,其中data 和labels 是两个pandas.DataFrame。
In: data.shape
Out: (19343, 87)
In: label.shape
Out: (19343, 1)
这就是我在 Jupyter 笔记本中使用 Vae 类(来自我的代码)的方式:
INPUT_SIZE = len(data.columns)
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size = 0.2)
vae = Vae(INPUT_SIZE, intermediate_dim=32)
vae.fit(X_train, X_test)
感谢您的帮助!
【问题讨论】:
-
您能否将您所做的更改添加到原始代码中,以便我们可以更轻松地跟踪您可能会犯的错误?
-
@ShashiTunga 我报告了原始代码和我的“修改”的链接。如您所见,我没有对代码进行任何更改,我只是将其重新格式化为一个 Python 类,其中包含三个主要方法:
init()、fit()和encode()。 -
你用的是哪个版本的 Keras?
标签: neural-network deep-learning keras autoencoder