前提・実現したいこと
ニューラルネットワーク(回帰問題)のプログラムを組んでいる最中にこのようなエラーが出ました。
エラーメッセージがmatmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 7 is different from 2)
と表示されます。データの規格化は行いました。
解決法が全く分かりません、ご教授お願いします。
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last) <ipython-input-8-51c1fe8543fa> in <module>() 75 x1 = X[i, 0] 76 x2 = X[i, 1] ---> 77 temp = NNreg.predict([[x1, x2]]) 78 Ypred.append(temp) 79 3 frames /usr/local/lib/python3.7/dist-packages/sklearn/neural_network/_multilayer_perceptron.py in predict(self, X) 1331 """ 1332 check_is_fitted(self) -> 1333 y_pred = self._predict(X) 1334 if y_pred.shape[1] == 1: 1335 return y_pred.ravel() /usr/local/lib/python3.7/dist-packages/sklearn/neural_network/_multilayer_perceptron.py in _predict(self, X) 683 layer_units[i + 1]))) 684 # forward propagate --> 685 self._forward_pass(activations) 686 y_pred = activations[-1] 687 /usr/local/lib/python3.7/dist-packages/sklearn/neural_network/_multilayer_perceptron.py in _forward_pass(self, activations) 102 for i in range(self.n_layers_ - 1): 103 activations[i + 1] = safe_sparse_dot(activations[i], --> 104 self.coefs_[i]) 105 activations[i + 1] += self.intercepts_[i] 106 /usr/local/lib/python3.7/dist-packages/sklearn/utils/extmath.py in safe_sparse_dot(a, b, dense_output) 149 ret = np.dot(a, b) 150 else: --> 151 ret = a @ b 152 153 if (sparse.issparse(a) and sparse.issparse(b) ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 7 is different from 2)
該当のソースコード
python3
1import numpy as np 2import matplotlib.pyplot as plt 3from sklearn.neural_network import MLPClassifier 4from sklearn.neural_network import MLPRegressor 5from sklearn.metrics import mean_squared_error 6 7 8 9data=np.loadtxt("data.csv",delimiter=",",skiprows=1) 10 11a_min = np.round(np.min(data[:, 1]), 3) 12a_max = np.round(np.max(data[:, 1]), 3) 13print("範囲: ", a_min, " 〜 ", a_max) 14data[:, 1] = (data[:,1] - a_min).astype(float) / (a_max - a_min).astype(float) 15print(data[:, 1]) 16 17b_min = np.round(np.min(data[:, 2]), 3) 18b_max = np.round(np.max(data[:, 2]), 3) 19print("範囲: ", b_min, " 〜 ", b_max) 20data[:, 2] = (data[:,2] - b_min).astype(float) / (b_max - b_min).astype(float) 21print(data[:, 2]) 22 23b_min = np.round(np.min(data[:, 3]), 3) 24b_max = np.round(np.max(data[:, 3]), 3) 25print("範囲: ", b_min, " 〜 ", b_max) 26data[:, 3] = (data[:,3] - b_min).astype(float) / (b_max - b_min).astype(float) 27print(data[:, 3]) 28 29b_min = np.round(np.min(data[:, 4]), 3) 30b_max = np.round(np.max(data[:, 4]), 3) 31print("範囲: ", b_min, " 〜 ", b_max) 32data[:, 4] = (data[:,4] - b_min).astype(float) / (b_max - b_min).astype(float) 33print(data[:, 4]) 34 35b_min = np.round(np.min(data[:, 5]), 3) 36b_max = np.round(np.max(data[:, 5]), 3) 37print("範囲: ", b_min, " 〜 ", b_max) 38data[:, 5] = (data[:,5] - b_min).astype(float) / (b_max - b_min).astype(float) 39print(data[:, 5]) 40 41b_min = np.round(np.min(data[:, 6]), 3) 42b_max = np.round(np.max(data[:, 6]), 3) 43print("範囲: ", b_min, " 〜 ", b_max) 44data[:, 6] = (data[:,6] - b_min).astype(float) / (b_max - b_min).astype(float) 45print(data[:, 6]) 46 47b_min = np.round(np.min(data[:, 7]), 3) 48b_max = np.round(np.max(data[:, 7]), 3) 49print("範囲: ", b_min, " 〜 ", b_max) 50data[:, 7] = (data[:,7] - b_min).astype(float) / (b_max - b_min).astype(float) 51print(data[:, 7]) 52 53X = data[:, 1:] 54Y = data[:, 0] 55 56# ニューラルの定義 & 学習 57NNreg = MLPRegressor( 58 hidden_layer_sizes=(5, ), #中間層の次元数 59 max_iter=15000, # 学習回数 60 learning_rate_init=0.001, # 学習係数 61 random_state=0, # 乱数シード 62 verbose=False # 学習過程の可視化 True: 可視化する、False: 可視化しない 63) 64NNreg.fit(X, Y) 65 66loss = NNreg.loss_curve_ 67plt.plot(loss) 68plt.ylabel("Loss") 69plt.xlabel("Iteration") 70plt.grid() 71 72# MSE算出 73Ypred = [] 74for i in range(len(Y)): 75 x1 = X[i, 0] 76 x2 = X[i, 1] 77 temp = NNreg.predict([[x1, x2]]) 78 Ypred.append(temp) 79 80mse = mean_squared_error(Ypred, Y) 81print("MSE: ", mse) 82a = NNreg.predict([[10, 15]]) 83print("予測結果", a) 84
補足情報(FW/ツールのバージョンなど)
google colabを使用してます。
回答1件
あなたの回答
tips
プレビュー