🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

7279閲覧

AttributeError: 'Series' object has no attribute 'reshape'というエラーを吐きます。いくら考えても原因を分かりません。どなたかよろしくお

airi5151

総合スコア5

Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/01/05 00:46

編集2020/01/05 01:08
#学習 x_cols = ["TEMP_okym","TEMP_hrsm"] + df.columns.tolist()[14:] X = df[x_cols] y = df["MW"] # ラベル付きデータをトレーニングセット (X_train, y_train)とテストセット (X_test,y_test)に分割 from sklearn import model_selection X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=.2, random_state=42) # 正規化 from sklearn.preprocessing import StandardScaler scaler = StandardScaler() scaler.fit(X_train) X_train = scaler.transform(X_train) X_test = scaler.transform(X_test) # Chainer読込 from chainer import Chain, optimizers, Variable import chainer.functions as F import chainer.links as L # ニューラルネットワークのモデル生成用クラス class MyChain(Chain): def __init__(self, n_units=10): super(MyChain, self).__init__( l1=L.Linear(len(x_cols), n_units), l2=L.Linear(n_units, n_units), l3=L.Linear(n_units, 1)) def __call__(self, x_data, y_data): x = Variable(x_data.astype(np.float32).reshape(len(x_data),len(x_cols))) y = Variable(y_data.astype(np.float32).reshape(len(y_data),1)) #print(x) pred = self.predict(x) #print(pred) return F.mean_squared_error(pred, y) def predict(self, x): h1 = F.relu(self.l1(x)) h2 = F.relu(self.l2(h1)) h3 = self.l3(h2) return h3 def get_predata(self, x): return self.predict(Variable(x.astype(np.float32).reshape(len(x),1))).data # パラメータ初期化 batchsize = 16 n_epoch = 200 n_units = 10 # モデル生成 model = MyChain(n_units) optimizer = optimizers.Adam() optimizer.setup(model) # 学習 train_losses =[] test_losses =[] N = len(X_train) for epoch in range(1, n_epoch + 1): perm = np.random.permutation(N) sum_loss = 0 for i in range(0, N, batchsize): x_batch = X_train[perm[i:i + batchsize]] y_batch = y_train[perm[i:i + batchsize]] model.zerograds() loss = model(x_batch,y_batch) sum_loss += loss.data * batchsize loss.backward() optimizer.update() average_loss = sum_loss / N train_losses.append(average_loss) loss = model(X_test,y_test) test_losses.append(loss.data) # 学習過程を出力 if epoch % 10 == 0: print("epoch: {}/{} train loss: {} test loss: {}".format(epoch, n_epoch, average_loss, loss.data))

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

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

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

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

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

y_waiwai

2020/01/05 00:53

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
airi5151

2020/01/05 01:12

早速のご教授ありがとうございます。 y = Variable(y_data.astype(np.float32).reshape(len(y_data),1)) loss = model(x_batch,y_batch) コードを実行すると上記ののコードにエラーがあるみたいです。
y_waiwai

2020/01/05 01:38

y_data.astype(np.float32) の実行結果はいったいナニモノかを調べてみましょう。 エラーメッセージには、そいつにはreshapeってのはないぞ、といってます
airi5151

2020/01/05 02:09

y_data.astype(np.float32)自体はy_dataというものを小数へ型変換?という意味かと思います。 他にも同じようなサンプルコードもあるし、ソースコード構造的にも非推奨になっていなさそうですし、 まだちょっとよく分からなくて困っています。 ちなみに、Qiitaの「Chainerで電力使用量予測」で抜粋しています。
airi5151

2020/01/05 04:57

ご教授ありがとうございます。 変更前:y = Variable(y_data.astype(np.float32).reshape(len(y_data),1)) 変更後:y = Variable(y_data.values.astype(np.float32).reshape(len(y_data),1)) 無事エラーが出ず解決しました。
guest

回答2

0

ベストアンサー

この場面ではy_dataはnp.arrayではなく、PandasのSeriesになっております。
np.arrayにはreshapeがありますが、Seriesには無いようなので、エラーになります。
何らかの方法でSeriesからnp.arrayに変換する必要があります。

投稿2020/01/05 02:28

fiveHundred

総合スコア10152

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

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

airi5151

2020/01/05 04:57

ご教授ありがとうございます。 変更前:y = Variable(y_data.astype(np.float32).reshape(len(y_data),1)) 変更後:y = Variable(y_data.values.astype(np.float32).reshape(len(y_data),1)) 無事エラーが出ず解決しました。
guest

0

google翻訳
AttributeError: 「Series」オブジェクトには「reshape」属性がありません

投稿2020/01/05 00:55

y_waiwai

総合スコア88040

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問