ValueError: All input arrays (x) should have the same number of samples. Got array shapes: [(1, 698), (38, 796)]
とエラーが出ました。Tracebackで
model.fit([inputs_train, queries_train], answers_train, batch_size=30, epochs=100, validation_data=([inputs_test, queries_test], answers_test))
の行がエラーを引き起こしていると言われました。
(1, 698) と (38, 796)の数が何を表しているのかいまいちよくわかりません。
自然言語処理のモデルを作り、それをLSTMで学習させようとしています。単語ごとに数値を割り振り、単語を数値化するところが終わりました。
inputs_test はその単語ごとに割り振った数字のリストで、story_maxlenは最大長い文章の長さが入っています。queries_testも単語ごとに割り振った数字のリストをもち、query_maxlenも最大長い文章の長さが入っています。そのためなぜこれらの値の大きさが違うのか理解できません。
def vectorize_stories(sentences,word_dct, story_maxlen, query_maxlen): X = [] Xq = [] Y = [] x = [word_idx[story[i]] for story in sentences for i in range(len(story)) if story[i] in word_idx] X.append(x) for item in total_data: for i in range(len(item)): if i == 0: xq = [word_idx[w] for w in item[i] if w in word_idx] Xq.append(xq) else: y = np.zeros(len(word_idx) + 1) if item[i] in word_idx: y[word_idx[item[i]]] = 1 Y.append(y) return (pad_sequences(X, maxlen=story_maxlen),pad_sequences(Xq, maxlen=query_maxlen), np.array(Y))
とコードを書きました。sentencesは入力のデータで
["Where","is","Tom","?"]
のようなリストです。word_dctは単語ごとに数値を割り振った結果の辞書です。story_maxlen と query_maxlenは前述の通りです。
pad_sequences(X, maxlen=story_maxlen)
がinputs_testで、
pad_sequences(Xq, maxlen=query_maxlen)
がqueries_testに対応しています。
このエラーは完璧に同じ長さの文章を学習させないと出るのでしょうか?
どのようにこのエラーを修正すればいいでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。