autoencoderで、学習した結果を出力したいのですが、
[[[0. 0. 0. 0. 0.24245892 0.
0. 0. 0. ]
[0. 0. 0. 0. 0. 0.
0. 0. 0.15186222]]
[[0. 0. 0. 0. 0. 0.
0. 0.27800256 0. ]
[0. 0.14638866 0. 0. 0. 0.
0. 0. 0. ]]]
となってしまいます。
原因を推測される方は何卒、宜しくお願い致します。
poem.txtは、
朝霧 の 中 に 九段 の ともし 哉
あたたか な 雨 が 降る なり 枯葎
菜の花 や は つと 明るき 町 は づれ
秋風 や 伊予 へ 流る る 汐 の 音
長閑 さ や 障子 の 穴 に 海 見え て
となっています。
import numpy as np
import codecs
import keras
from keras.layers import Activation, Dense, Input
from keras.models import Model
import sys
with open(r'./Desktop/haiku.txt', encoding='utf-8') as f:
poems = f.readlines()
for p in poems:
s = p.rstrip()
s = s.split(' ')
chars = sorted(list(set(poems)))
char_indices = dict((c, i) for i, c in enumerate(chars))
maxlen = 2
step = 3
sentences = []
for i in range(0, len(poems) - maxlen, step):
sentences.append(poems[i: i + maxlen])
input_word = Input(shape=(maxlen, len(chars)))
indices_char = dict((i, c) for i, c in enumerate(chars))
x = np.zeros((len(sentences), maxlen, len(chars)), dtype=np.bool)
for i, sentence in enumerate(sentences):
for t, char in enumerate(sentence):
x[i, t, char_indices[char]] = 10
encoding_dim = 128
input_word = Input(shape=(maxlen, len(chars)))
encoded_1 = Dense(128, activation='relu')(input_word)
encoded_2 = Dense(64, activation='relu')(encoded_1)
encoded_3 = Dense(32, activation='relu')(encoded_2)
latent = Dense(8, activation='relu')(encoded_3)
decoded_1 = Dense(32, activation='relu')(latent)
decoded_2 = Dense(64, activation='relu')(decoded_1)
decoded_3 = Dense(5, activation='relu')(encoded_2)
autoencoder = Model(inputs=input_word, outputs=decoded_3)
autoencoder.compile(optimizer='Adam', loss='categorical_crossentropy')
autoencoder.fit(x, x,
epochs=1,
batch_size=150,
shuffle=False)
bunsyo = autoencoder.predict(x[1:17], batch_size=10, verbose=1, steps=None)
print(bunsyo)
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
あまり詳しくないので、細かいところはわかりませんが、答えられるところまで。
decoded_3はあくまで学習モデルの一部で、結果を持っているわけではありません。
結果を取得したい場合は、(事前にfit()などで学習を完了させた上で)predict()かpredict_on_batch()を使ってください(参考)。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.33%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2018/10/26 19:44 編集
2018/10/26 20:49
2018/10/26 20:54
2018/10/26 20:55
2018/10/26 21:01
2018/10/26 21:28 編集
長閑 さ や 障子 の 穴 に 海 見え て
長閑さや障子の穴に海見えて