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

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回答

1424閲覧

機械学習で推論したら'int' object is not callable rnn.pyと出力される

tact999

総合スコア0

Google Colaboratory

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

PyTorch

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

0グッド

0クリップ

投稿2020/08/05 14:19

前提・実現したいこと

事前にLSTMを実装した機械学習モデルを作成し、
作成した学習済みモデルを読み込み時系列データの推論を実施したい。

作成したスクリプトは
・学習用スクリプト
・推論用スクリプト
で訳各スクリプトの構成は下記となる。

【学習用スクリプト】
①pytorch LSTMにてモデルを作成
②モデルを学習
③モデルを保存

【推論用スクリプト】

①モデルの作成
②学習済みデータのインポート
③推論

上記構成にて【推論用スクリプト】-③推論の箇所を実装しテストした所

'int' object is not callable rnn.py

というエラーが発生し推論が出来ない状態となっている。

環境

Python: 3.6.9
環境: Google Colaboratory PRO
フレームワーク: Pytorch

発生している問題・エラーメッセージ

下記ソースコードを実行した所

model.load_state_dict(torch.load("学習済みモデル.mdl")) model.eval() with torch.no_grad(): model(data)

下記エラーが発生した

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-41-5844fcf260d7> in <module>() 1 model.eval() 2 with torch.no_grad(): ----> 3 model(data) 3 frames /usr/local/lib/python3.6/dist-packages/torch/nn/modules/rnn.py in forward(self, input, hx) 557 else: 558 batch_sizes = None --> 559 max_batch_size = input.size(0) if self.batch_first else input.size(1) 560 sorted_indices = None 561 unsorted_indices = None TypeError: 'int' object is not callable

上記のエラーのエラーの解決方法が解からず宜しければ教えてください。

ソースコード【学習用スクリプト】

①pytorch LSTMにてモデルを作成

class LSTMClassifier(nn.Module): def __init__(self, lstm_input_dim, lstm_hidden_dim, target_dim): super(LSTMClassifier, self).__init__() self.input_dim = lstm_input_dim self.hidden_dim = lstm_hidden_dim self.lstm = nn.LSTM(input_size=lstm_input_dim, hidden_size=lstm_hidden_dim, num_layers=1, #default #dropout=0.2, batch_first=True ) self.dense = nn.Linear(lstm_hidden_dim, target_dim) def forward(self, X_input): _, lstm_out = self.lstm(X_input) # LSTMの最終出力のみを利用する。 linear_out = self.dense(lstm_out[0].view(X_input.size(0), -1)) return torch.sigmoid(linear_out)
model = LSTMClassifier(feature_num, lstm_hidden_dim, target_dim).to(device) loss_function = nn.BCELoss() optimizer= optim.Adam(model.parameters(), lr=1e-4)

③モデルを保存

torch.save(model.state_dict(),学習モデル)

ソースコード【推論用スクリプト】

①pytorch LSTMにてモデルを作成

class LSTMClassifier(nn.Module): def __init__(self, lstm_input_dim, lstm_hidden_dim, target_dim): super(LSTMClassifier, self).__init__() self.input_dim = lstm_input_dim self.hidden_dim = lstm_hidden_dim self.lstm = nn.LSTM(input_size=lstm_input_dim, hidden_size=lstm_hidden_dim, num_layers=1, #default #dropout=0.2, batch_first=True ) self.dense = nn.Linear(lstm_hidden_dim, target_dim) def forward(self, X_input): _, lstm_out = self.lstm(X_input) # LSTMの最終出力のみを利用する。 linear_out = self.dense(lstm_out[0].view(X_input.size(0), -1)) return torch.sigmoid(linear_out)
model = LSTMClassifier(feature_num, lstm_hidden_dim, target_dim).to(device) loss_function = nn.BCELoss() optimizer= optim.Adam(model.parameters(), lr=1e-4)

②学習済みデータのインポート

model.load_state_dict(torch.load(学習モデル)) model.eval()

③推論 ★当コードにてエラー

with torch.no_grad(): model(推論用データ)

試した事

①学習用データと推論用データの比較
・読み込ませるデータに差分があるのかと思い、比較したがカラムに関する差分は無い
・推論する際に必要なデータ数である事の確認
→学習時30ステップを用いて推論する設定となっていた。
推論用データについても30ステップ以上となる様に確認

上記解決方法をご存じな方居られましたら教えてください。

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

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

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

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

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

guest

回答1

0

int のオブジェクトにカッコつけても呼び出せません、とおっしゃってますので、エラー出てる、そこんところをチェックしてみよう

投稿2020/08/05 14:25

y_waiwai

総合スコア87749

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問