自动编码器网络无法提供预期的结果

时间:2019-04-16 21:58:50

标签: python tensorflow keras deep-learning

我很难建立一个自动编码器神经网络,以便在单列文本中查找异常值。我正在使用Keras和Tensorflow GPU。我被困住了,我不知道从哪里开始。

以下是我输入文字的摘要:

ic_select_all_white_36dp.png
ic_settings_bluetooth_black_24dp.png
ic_settings_bluetooth_white_36dp.png
ic_settings_grey600_48dp.png
ic_settings_remote_white_24dp.xml
ic_settings_remote_white_48dp.png
ic_settings_white_24dp.xml
ic_settings_white_48dp.png
ic_show_chart_black_24dp.xml
ic_sort_white_24dp.xml
ic_star_grey600_24dp.png
ic_star_white_24dp.xml
ic_usb_white_24dp.xml
ic_video_library_white_24dp.xml
ic_warning_24dp.xml
ic_xda_grey600_24dp.png

我的整个代码如下:

import sys
from keras import Input, Model
import matplotlib.pyplot as plt
from keras.layers import Dense
from keras.preprocessing.text import Tokenizer
import numpy as np

from google.colab import drive
drive.mount('/content/drive')

with open('/content/drive/My Drive/Colab Notebooks/drawables.txt', 'r') as arquivo:
    dados = arquivo.read().splitlines()

tokenizer = Tokenizer(filters='', nb_words=None)
tokenizer.fit_on_texts(dados)

x_dados = tokenizer.texts_to_matrix(dados, mode="count")
#x_dados = tokenizer.texts_to_sequences(dados, mode="count")

tamanho = len(tokenizer.word_index) + 1
tamanho_comprimido = int(tamanho/1.25)

x = Input(shape=(tamanho,))

# Encoder
hidden_1 = Dense(tamanho_comprimido, activation='relu')(x)
h = Dense(tamanho_comprimido, activation='relu')(hidden_1)

# Decoder
hidden_2 = Dense(tamanho, activation='relu')(h)
r = Dense(tamanho, activation='sigmoid')(hidden_2)

autoencoder = Model(input=x, output=r)

autoencoder.compile(optimizer='adam', loss='mse')

history = autoencoder.fit(x_dados, x_dados, epochs=10, shuffle=False)

plt.plot(history.history["loss"])
plt.ylabel("Loss")
plt.xlabel("Epoch")
plt.show()

encoded = autoencoder.predict(x_dados)

resultado = tokenizer.sequences_to_texts(encoded)

#encoded_argmax  = np.argmax(encoded, axis=1)
encoded_argmax  = np.argmax(encoded, axis=1)

text = tokenizer.sequences_to_texts([encoded_argmax])


from pprint import pprint


pprint(encoded_argmax)

pprint(text)

我正在使用Google Collab,运行了代码,进行了训练,可以使用Epoch和所有图形绘制图形,但是当我执行最后一条命令时,将输出文本上的pprint转换为序列,我得到了不同的结果每次运行时都会得到结果,但结果基本上是不准确的,我不知道自己在做什么错。

我的pprint(text)输出在我的问题下面,因为它很大。

我感到奇怪的是,我的输入是一列文本,而我的输出恰好有多列。

我迷路了,我不知道从哪里开始。

['item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml '
 'item_doc_grid.xml item_doc_grid.xml item_doc_grid.xml']

0 个答案:

没有答案