質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1655閲覧

python,kerasで学習予測のデータ表示

kout

総合スコア0

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/05 16:40

前提・実現したいこと

日経株価の学習予測をしています。エラーが出て解決策が分からない状況です。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "C:\Users\gakusyuuyosoku1.py", line 114, in <module> model.fit(X_train, Y_train, File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\engine\training.py", line 1158, in fit tmp_logs = self.train_function(iterator) File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\def_function.py", line 889, in __call__ result = self._call(*args, **kwds) File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\def_function.py", line 950, in _call return self._stateless_fn(*args, **kwds) File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\function.py", line 3023, in __call__ return graph_function._call_flat( File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\function.py", line 1960, in _call_flat return self._build_call_outputs(self._inference_function.call( File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\function.py", line 591, in call outputs = execute.execute( File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\execute.py", line 59, in quick_execute tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name, tensorflow.python.framework.errors_impl.UnimplementedError: Cast string to float is not supported [[node mean_squared_error/Cast (defined at \AppData\Local\Programs\Python\Python39\lib\site-packages\keras\losses.py:1201) ]] [Op:__inference_train_function_3684] Errors may have originated from an input operation. Input Source operations connected to node mean_squared_error/Cast: IteratorGetNext (defined at \AppData\Local\Programs\Python\Python39\lib\site-packages\keras\engine\training.py:819) Function call stack: train_function

ソースコード

python

1import numpy as np 2import pandas as pd 3from keras.models import Sequential 4from keras.layers.core import Dense, Activation 5from keras.layers.recurrent import LSTM 6from keras.optimizers import Adam 7from sklearn.model_selection import train_test_split 8 9owarine = [] 10data = [] 11data2 = [] 12data3 = [] 13target = [] 14kairi = [] 15jyousyou = [] 16maxlen = 60 17day1 = [] 18day2 = [] 19day3 = [] 20owarine = [] 21 22def normalization(a): 23 b = [] 24 for i in a: 25 b.append((i-min(a))/(max(a)-min(a))) 26 return b 27 28file=pd.read_csv('^nkx_d.csv',delimiter=',') 29for i in range(len(file)): 30 day1.append(file['Date'][i]) 31 owarine.append(file['Close'][i]) 32 33with open("kairiritu.txt","r",encoding="utf-8") as f: 34 next(f) 35 for line in f: 36 data2 = line.split(' ') 37 day2.append(str(data2[0])) 38 kairi.append(float(data2[1])) 39 40with open("jousyoudo.txt","r",encoding="utf-8") as f: 41 next(f) 42 for line in f: 43 data3 = line.split(' ') 44 day3.append(str(data3[0])) 45 jyousyou.append(str(data3[1])) 46''' 47日付合わせ 48''' 49for i in range(len(owarine)-1,0,-1): 50 if(day1[i] == day3[-1]): 51 del day1[i+1:len(day1)] 52 del owarine[i+1:len(owarine)] 53 break 54for i in range(len(kairi)-1,0,-1): 55 if(day2[i] == day3[-1]): 56 del day2[i+1:len(day2)] 57 del kairi[i+1:len(kairi)] 58 break 59if(len(day2) > len(day3)): 60 for i in range(0,len(owarine)): 61 if(day1[i] == day3[0]): 62 del day1[0:i] 63 del owarine[0:i] 64 break 65 for i in range(0,len(kairi)-1): 66 if(day2[i] == day3[0]): 67 del day2[0:i] 68 del kairi[0:i] 69 break 70else: 71 for i in range(0,len(owarine)): 72 if(day1[i] == day2[0]): 73 del day1[0:i] 74 del owarine[0:i] 75 break 76 for i in range(0,len(jyousyou)): 77 if(day3[i] == day2[0]): 78 del day3[0:i] 79 del jyousyou[0:i] 80 break 81for i in range(0, len(kairi)-maxlen): 82 data.append(normalization(kairi[i: i + maxlen])) 83 target.append(jyousyou[i + maxlen]) 84X = np.array(data).reshape(len(data), maxlen, 1) 85Y = np.array(target).reshape(len(data), 1) 86N_train = int(len(data) * 0.5) 87N_validation = len(data) - N_train 88X_train, X_validation, Y_train, Y_validation = train_test_split(X, Y, test_size=N_validation,shuffle=False) 89 90''' 91モデル設定 92''' 93n_in = len(X[0][0]) 94n_hidden = 60 95n_out = len(Y[0]) 96def weight_variable(shape, name=None): 97 return np.random.normal(scale=.01, size=shape) 98model = Sequential() 99model.add(LSTM(n_hidden, 100 kernel_initializer="random_uniform", 101 input_shape=(maxlen, n_in))) 102model.add(Dense(n_hidden, kernel_initializer="random_uniform")) 103model.add(Activation('sigmoid')) 104model.add(Dense(n_out, kernel_initializer="random_uniform")) 105model.add(Activation('sigmoid')) 106optimizer = Adam(lr=0.001, beta_1=0.9, beta_2=0.999) 107model.compile(loss='mean_squared_error', 108 optimizer=optimizer) 109''' 110モデル学習 111''' 112epochs = 100 113batch_size = 1000 114model.fit(X_train, Y_train, 115 batch_size=batch_size, 116 epochs=epochs, 117 validation_split = 0.25) 118y_ = model.predict(X_validation) 119yosoku = [] 120for i in range (0,len(y_)): 121 if (y_[i]>=0.5): 122 yosoku.append('1') 123 else: 124 yosoku.append('0') 125#学習の予測データ表示 126b = open("yosoku.txt","w",encoding="utf-8") 127b.write("日付 上昇度" + "\n") 128print(len(yosoku)) 129for s in range(len(yosoku)): 130 b.write(str(day3[(len(jyousyou))-(len(yosoku))+s])+" "+str(yosoku[s])+"\n")

補足情報

Python 3.9.6
Keras 2.4.3
numpy 1.19.5
pandas 1.3.0
tensorflow 2.5.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

目的変数Yの要素が文字列になってしまっており、文字列からの変換はサポートしていない、という意味のエラーが出ています。目的変数Yを数値にすることで、エラーは解消するでしょう。

<詳細>

以下で文字列リストjyousyouを、そのままtargetに組み込み、目的変数Yとしてしまっています。

Python

1for i in range(0, len(kairi)-maxlen): 2 data.append(normalization(kairi[i: i + maxlen])) 3 target.append(jyousyou[i + maxlen]) 4X = np.array(data).reshape(len(data), maxlen, 1) 5Y = np.array(target).reshape(len(data), 1)

エラーメッセージのポイントは以下です。(stringからfloatへのcastはサポートしていません)

Python

1tensorflow.python.framework.errors_impl.UnimplementedError: Cast string to float is not supported

なお、jyousyouの中身が質問文からは判別不能ですので、具体的に数値にする方法まではわかりません。

投稿2021/07/05 22:41

toast-uz

総合スコア3266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問