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

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

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

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

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

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

Q&A

解決済

1回答

2084閲覧

SyntaxError: invalid syntax エラー Python

PPAP_AWS

総合スコア105

深層学習

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

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

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

0グッド

0クリップ

投稿2020/12/03 10:25

編集2020/12/03 13:41

構文が無効と言っているのですが、参考動画と同じなのですが、どこが間違っているのか、教えてくださると助かります。
また、print("The Number of Training Data: ", len(train_data)) の実行結果が1しかないのですが、本当であれば、564と結果がないといけないのですが、なぜ、データが1つしないのかも教えてくださると助かります。

ご教授お願いいたします。
参考動画リンク内容 13:41

import torch import torch.nn as nn import numpy as np import pandas as pd import matplotlib.pyplot as plt
stock_data = pd.read_csv( "Downloads/PP.csv", index_col = 0, parse_dates=True ) stock_data
stock_data.drop( ["Open", "High", "Low", "Close", "Volume"], axis="columns", inplace=True ) stock_data
stock_data.plot(figsize=(12, 4))
y = stock_data["Adj Close"].values y
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(-1, 1)) scaler.fit(y.reshape(-1, 1)) y = scaler.transform(y.reshape(-1, 1)) y
y = torch.FloatTensor(y).view(-1) y
test_size = 24 train_seq = y[:-test_size:] test_seq = y[-test_size:]
plt.figure(figsize=(12, 4)) plt.xlim(-20, len(test_seq)+20) plt.grid(True) plt.plot(test_seq)
train_window_size = 12
def input_data(seq, ws): out = [] L = len(seq) for i in range(L-ws): window = seq[i:i+ws] label = seq[i+ws:i+ws+1] out.append((window, label)) return out
train_data = input_data(train_seq, train_window_size)
print("The Number of Training Data: ", len(train_data)) ↓ The Number of Training Data: 1
class Model(nn.Module): def __init__(self, input=1, h=50, output=1): super().__init__() self.hidden_size = h self.lstm = nn.LSTM(input, h) self.fc = nn.Linear(h, output) self.hidden = ( torch.zeros(1, 1, h), torch.zeros(1, 1, h) ) def forward(self, seq): out,_=self.lstm( seq.view(len(seq), 1, -1), self.hidden ) out = self.fc( out.view(len(seq), -1) ) return out[-1]
torch.manual_seed(123) model = Model() criterion = nn.MSELoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
epochs = 10 train_losses = [] test_losses = []
def run_train(): model.train() for train_window, correct_label in train_data: optimizer.zero_grad() model.hidden = ( torch.zeros(1, 1, model.hidden_size), torch.zeros(1, 1, model.hidden_size) ) train_predicted_label = model.forward(train_window) train_loss = criterion(train_precicted_label, correct_label) train_loss.backward() optimizer.step() train_losses.append(train_loss)
a = torch.tensor([3]) a.item()
def run_test(): model.eval() for i in range(test_size): test_window = torch.Float(extending_seq[-test_size:]) with torch.no_grad(): model.hidden = ( torch.zeros(1, 1, model.hidden_size), torch.zeros(1, 1, model.hidden_size) ) test_predicred_label = model.forward(test_window) extending_seq.append(test_predicred_label.item()) test_loss = criterion( torch.FloatTensor(extending_seq[-test_size:]), y[len(y)-test_size:] ) test_losses.append(test_loss)
train_seq[-test_size:]
train_seq[-test_size:].tolist()
for epoch in range(epochs): print() print(f'Epoch: {epoch+1}') run train() extending_seq = train_seq[-test_size:].tolist() run test() plt.figure(figsize=(12, 4)) plt.xlim(-20, len(y)+20) plt.grid(True) plt.plot(y.numpy()) plt.plot( range(len(y)-test_size, len(y)), extending_seq[-test_size:] ) plt.show()

↓ エラー

File "<ipython-input-67-5ed17c2958f4>", line 6 run train() ^ SyntaxError: invalid syntax

追記。。

for epoch in range(epochs): print() print(f'Epoch: {epoch+1}') run_train() extending_seq = train_seq[-test_size:].tolist() run_test() plt.figure(figsize=(12, 4)) plt.xlim(-20, len(y)+20) plt.grid(True) plt.plot(y.numpy()) plt.plot( range(len(y)-test_size, len(y)), extending_seq[-test_size:] ) plt.show()

エラー内容

Epoch:

1----------------------------------------------------------------------- 2NotImplementedError Traceback (most recent call last) 3<ipython-input-212-863045c37b1e> in <module> 4 4 print(f'Epoch: {epoch+1}') 5 5 6----> 6 run_train() 7 7 8 8 extending_seq = train_seq[-test_size:].tolist() 9 10<ipython-input-206-e770668ef1d7> in run_train() 11 10 ) 12 11 13---> 12 train_predicted_label = model.forward(train_window) 14 13 train_loss = criterion(train_precicted_label, correct_label) 15 14 16 17~/opt/anaconda3/lib/python3.8/site-packages/torch/nn/modules/module.py in _forward_unimplemented(self, *input) 18 173 registered hooks while the latter silently ignores them. 19 174 """ 20--> 175 raise NotImplementedError 21 176 22 177 23 24NotImplementedError:

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

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

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

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

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

meg_

2020/12/03 10:42

> 参考動画と同じなのですが、 何を指しているのでしょうか?
PPAP_AWS

2020/12/03 10:45

コメントありがとうございます。 追記しました。ご確認お願いいたします。
PPAP_AWS

2020/12/03 12:12

コードの最後のエラーと途中のコードの実行結果が一致していないことが、最後のコードのエラーと繋がっているのかも知りたいです。 なぜ、参考動画と同じなのに、エラーが出てしまっているのか。 よろしくお願い致します。
meg_

2020/12/03 13:53

> コードの実行結果が一致していないことが、 上記は下記のことでしょうか? > print("The Number of Training Data: ", len(train_data)) の実行結果が1しかないのですが 回答しましたが未だ解決していませんか? それともまた別の不具合でしょうか?
PPAP_AWS

2020/12/03 14:04

> print("The Number of Training Data: ", len(train_data)) 上記の不具合は無事に、変更されました。 誠にありがとうございました。 なのですが、質問事項の最後の方見ていただけると幸いなのですが、実行中の最後のコードにエラーがご指摘いただいた。 run train() ⇨ run _train() に変えて見たのですが、エラーが消えないです。 ご京お願いしたいのですが、大丈夫であればお答えしてくださると助かります。 なのですが、
guest

回答1

0

ベストアンサー

また、print("The Number of Training Data: ", len(train_data)) の実行結果が1しかないのですが、本当であれば、564と結果がないといけないのですが、なぜ、データが1つしないのかも教えてくださると助かります。

下記コードが原因かと思われます。

Python

1def input_data(seq, ws): 2 out = [] 3 L = len(seq) 4 5 for i in range(L-ws): 6 window = seq[i:i+ws] 7 label = seq[i+ws:i+ws+1] 8 out.append((window, label)) 9 10 return out

インデントを修正します。

Python

1def input_data(seq, ws): 2 out = [] 3 L = len(seq) 4 5 for i in range(L-ws): 6 window = seq[i:i+ws] 7 label = seq[i+ws:i+ws+1] 8 out.append((window, label)) 9 10 return out

File "<ipython-input-67-5ed17c2958f4>", line 6

run train() ^

SyntaxError: invalid syntax

上記についてはrun train()ではなくrun_train()です。


【追記】

なぜ、参考動画と同じなのに、エラーが出てしまっているのか。

同じではないからです。forwardのインデントが間違っています。

<誤>

Python

1class Model(nn.Module): 2 3 def __init__(self, input=1, h=50, output=1): 4 super().__init__() 5 self.hidden_size = h 6 7 self.lstm = nn.LSTM(input, h) 8 self.fc = nn.Linear(h, output) 9 10 self.hidden = ( 11 torch.zeros(1, 1, h), 12 torch.zeros(1, 1, h) 13 ) 14 15 def forward(self, seq): 16 17 out,_=self.lstm( 18 seq.view(len(seq), 1, -1), 19 self.hidden 20 ) 21 22 out = self.fc( 23 out.view(len(seq), -1) 24 ) 25 26 return out[-1]

<正>

Python

1class Model(nn.Module): 2 3 def __init__(self, input=1, h=50, output=1): 4 super().__init__() 5 self.hidden_size = h 6 7 self.lstm = nn.LSTM(input, h) 8 self.fc = nn.Linear(h, output) 9 10 self.hidden = ( 11 torch.zeros(1, 1, h), 12 torch.zeros(1, 1, h) 13 ) 14 15 def forward(self, seq): 16 17 out, _ = self.lstm( 18 seq.view(len(seq), 1, -1), 19 self.hidden 20 ) 21 22 out = self.fc( 23 out.view(len(seq), -1) 24 ) 25 26 return out[-1]

投稿2020/12/03 12:28

編集2020/12/03 14:02
meg_

総合スコア10580

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

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

PPAP_AWS

2020/12/03 13:43

print("The Number of Training Data: ", len(train_data))の実行結果が変更されました。 しかし、最後のコードのエラーが消えないです。。 追記しましたので、再度ご指摘お願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問