pythonを使いcsvに入ってる数値データをdeeplearningで学習させたい。
発生している問題・エラーメッセージ
実行すると
Traceback (most recent call last):
File "C:/Users/tennis/PycharmProjects/sisaku/gsush.py", line 58, in <module>
history = model.fit(x_train, y_train, batch_size=200, epochs=1000, verbose=1, validation_data=(x_test, y_test))
File "C:\Users\tennis\Anaconda3\envs\tensor\lib\site-packages\keras\engine\training.py", line 1037, in fit
validation_steps=validation_steps)
File "C:\Users\tennis\Anaconda3\envs\tensor\lib\site-packages\keras\engine\training_arrays.py", line 199, in fit_loop
outs = f(ins_batch)
File "C:\Users\tennis\Anaconda3\envs\tensor\lib\site-packages\keras\backend\tensorflow_backend.py", line 2666, in call
return self._call(inputs)
File "C:\Users\tennis\Anaconda3\envs\tensor\lib\site-packages\keras\backend\tensorflow_backend.py", line 2619, in _call
dtype=tf.as_dtype(tensor.dtype).as_numpy_dtype))
File "C:\Users\tennis\Anaconda3\envs\tensor\lib\site-packages\numpy\core\numeric.py", line 501, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: could not convert string to float: 'v -0.670323 0.017320 2.448769¥nv -0.248426 0.066855 2.655411¥nv -0.634120 0.159561 2.476978'
と出てしまい実行できません
csvには最初にあるdonを除く800セルがあり、各セルには改行されている数値データが入っていて800セル全てを800個分のデータとして読み込ませたいのです。
解決方法を教えてください。
該当のソースコード
import pandas as pd import os from skimage import data from sklearn.model_selection import train_test_split import numpy as np from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import RMSprop d_data_set = pd.read_csv("tes.csv", encoding="SHIFT-JIS") d_data_set = d_data_set.replace('v', '') d_data_set = d_data_set.replace('.', '') d_data_set = d_data_set.replace('-', '') search_dir = './image' f = np.array([ data.imread('{}/{}'.format(search_dir, path)) for path in os.listdir(search_dir) ]) f = f.reshape(len(f), -1).astype(np.float64) x = f y = d_data_set.loc[:,"don"] x_train, x_test, y_train, y_test = train_test_split(x, y,test_size=0.05) model = Sequential() model.add(Dense(50, activation="relu", input_shape=(817452,))) model.add(Dropout(0.2)) model.add(Dense(50, activation="relu", input_shape=(817452,))) model.add(Dropout(0.2)) model.add(Dense(50, activation="relu", input_shape=(817452,))) model.add(Dropout(0.2)) model.add(Dense(1, activation='softmax')) model.summary() print("/n") model.compile(loss='mean_squared_error', optimizer=RMSprop(), metrics=['accuracy']) history = model.fit(x_train, y_train, batch_size=200, epochs=1000, verbose=1, validation_data=(x_test, y_test)) score = model.evaluate(x_test, y_test, verbose=0) print("/n") print("Test loss", score[0]) print("test accuracy", score[1]) search_dir = './sample' kore = np.array([ data.imread('{}/{}'.format(search_dir, path)) for path in os.listdir(search_dir) ]) kore = f.reshape(len(f), -1).astype(np.float64) sample = kore predict = model.predict_classes(kore.reshape(1, -1), batch_size=1, verbose=1) print("/n") print("サンプル出た") print(predict) print("/n")
試したこと
googleでエラー文で調べているのですがreplaceでやろうとしたのですが結果は変わりませんでした。
後から気付いたのですが実行するたびにエラー文の数値も変わります。
補足情報(FW/ツールのバージョンなど)
以下はcsvファイルをテキストエディタで開いた時のdonを除くセル5個分のデータです。
don
"v 0.310527 0.015296 0.505581
v 0.683512 -0.001598 0.216188
v 0.370806 0.149291 0.478181"
"v 0.313408 0.008205 0.505414
v 0.685073 -0.006196 0.214194
v 0.373934 0.142358 0.479367"
"v 0.304531 0.004002 0.505210
v 0.680174 -0.008961 0.219070
v 0.365913 0.138171 0.481338"
"v 0.297987 -0.006071 0.504920
v 0.676619 -0.010223 0.222481
v 0.357903 0.129184 0.483590"
"v 0.305034 -0.011075 0.504809
v 0.680596 -0.010772 0.218271
v 0.468077 0.124864 0.479119"
1セル3行で最初のdonを除くと800セルありますので2400行あります。
windows 10
python 3.5
pycharm
pycharmのsettingのline separatorではUnix and OS X(¥n)に設定しています。