以下、シンプルなLSTMモデルを実行しようとしたところ、model.fitの部分(★)で下記エラーが発生します。
エラー内容
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type int)
類似事例を調べ、
**train_data, test_data, train_labels, test_labels"**を全て
np.asarray(train_data).astype(np.float32)
に事前に変換しておくと、正常に実行されました。
解決自体はしましたが、今回、
・なぜ float32型に変換したことでエラー回避できたのか
仕組みがよくわからず・・・お知恵をお借りしたく。
# imdbの映画レビューに基づいたセンチメント分析です import keras import tensorflow as tf from keras.datasets import imdb from keras.preprocessing import sequence import numpy as np import os VOCAB_SIZE = 88584 MAXLEN = 250 BATCH_SIZE = 64 # 学習用と検証用データに分ける (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words = VOCAB_SIZE) # 要素数の合わない配列のサイズを一致 train_data = sequence.pad_sequences(train_data, MAXLEN) test_data = sequence.pad_sequences(test_data, MAXLEN) #モデルの設計 model = tf.keras.Sequential([ tf.keras.layers.Embedding(VOCAB_SIZE, 32), tf.keras.layers.LSTM(units=32), tf.keras.layers.Dense(1, activation="sigmoid") ]) # 学習プロセスの設計 model.compile(loss="binary_crossentropy", optimizer="rmsprop", metrics=['acc']) # 学習の実行 history = model.fit(train_data, train_labels, epochs=10, validation_split=0.2) ★
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。