自分が作成した機械学習用の入力データが、期待される形状と実際の形状が異なるため質問させていただきました。
以下作成に使用したコードです。
python
1x_train=[] 2for nt in data:#dataは読み込むデータのフォルダの番号を表す 3 X=natsorted(glob.glob("{0}/*".format(fold_path[nt])))#nt番目のフォルダ内のcsvファイルのリストを表す 4 for i in range(0,60,4): 5 data_x=np.loadtxt(X[i],delimiter=',')#フォルダ内のcsvファイルの読み込み 6 x_train.append(data_x) 7x_train=np.array(x_train) 8print(x_train.shape)#形状を表示
指定したフォルダ内のcsvファイルを読み込んでそれをx_trainにappendしています。そして最後に形状を表示させています。
このcsvファイルのデータはすべて(44,128)です。今回8925回繰り返しappendしているので期待される形状は、(8925,44,128)のはずです。しかし実際は(8925,)という形状でした。そこで形状がどのように変化していったのか繰り返しごとに表示させてみました。
python
1for nt in data[1]: 2 X=natsorted(glob.glob("{0}/*".format(fold_path[nt])))#nt番目の楽曲のフォルダ内のcsvファイルのリストを表す 3 for i in range(0,60,4): 4 data_x=np.loadtxt(X[i],delimiter=',') 5 x_train.append(data_x) 6 x_train=np.array(x_train) 7 print(x_test.shape)#形状を毎回表示 8 x_train=list(x_train)
すると以下のような表示がされました。(一部を表示)
(369, 44, 128)
(370, 44, 128)
(371, 44, 128)
(372, 44, 128)
(373, 44, 128)
(374, 44, 128)
(375, 44, 128)
(376,)
(377,)
(378,)
(379,)
375まで期待通りの形状でありましたが、376からおかしくなっています。これは読み込んだデータ自体の問題なのかそれともnumpyの何らかの仕様なのか伺いたいです。
ちなみに、保存した配列の形状自体は(8925,)でしたが、この配列の要素の形状をみるとどれも(44,128)となっていました。
以下に配列の一部を表示します。
array([[ 1.80045 , 1.71321 , 1.32516 , ..., -1.93034 , -1.94134 ,
-1.95083 ],
[ 1.81267 , 2.41201 , 2.46577 , ..., -2.1989 , -2.1989 ,
-2.1989 ],
[ 1.57864 , 2.68165 , 2.88657 , ..., -2.1989 , -2.1989 ,
-2.1989 ],
...,
[ 0.244668, 1.64041 , 1.86744 , ..., -2.1989 , -2.1989 ,
-2.1989 ],
[ 1.16727 , 1.67503 , 1.75318 , ..., -1.24344 , -1.2626 ,
-1.27408 ],
[ 1.66377 , 1.76492 , 1.32972 , ..., -0.803295, -0.822467,
-0.833941]])
array([[ 1.06735 , 1.58928 , 1.62816 , ..., -1.8058 , -1.81798 ,
-1.8247 ],
[ 0.69418 , 1.4327 , 1.58198 , ..., -2.14881 , -2.16095 ,
-2.16769 ],
[-0.568896, 1.33733 , 1.54769 , ..., -2.62086 , -2.62086 ,
-2.62086 ],
...,
[ 0.686249, 1.58705 , 1.74332 , ..., -2.62086 , -2.62086 ,
-2.62086 ],
[ 0.697343, 1.64986 , 1.79185 , ..., -1.83525 , -1.84609 ,
-1.85204 ],
[ 0.456442, 1.57898 , 1.51891 , ..., -1.44076 , -1.4516 ,
-1.45756 ]])]
このarrayが(44,128)になっていました。本来であれば、arrayの表記はつかないと思うので、このような形状になっているのはarrayが付いていることが原因だとは思います。
なにか分かることがあれば教えていただきたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー