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

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

新規登録して質問してみよう
ただいま回答率
85.46%
PyTorch

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

Python

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

Q&A

解決済

1回答

700閲覧

Pythonのフォルダを超えたクラスの読み込みについて

nudesudesu

総合スコア8

PyTorch

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

Python

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

0グッド

1クリップ

投稿2021/07/23 01:53

編集2021/07/23 01:54

大学生です、Pythonについて勉強しはじめました。
Pytorchにチュートリアルにて以下のようなコードがあったのですが、

class Model(nn.Module): def __init__(self): super(Model, self).__init__() self.conv1 = nn.Conv2d(1, 20, 5) def forward(self, x): x = F.relu(self.conv1(x)) return F.relu(self.conv2(x))

下記のリンクをよるとConv2dクラスが格納されているのは、torch.nn.module.conv.pyのようですが、どうしてnn.Conv2dで呼び出せるのですか?またこのようにフォルダを超えて呼び出すクラスを作るにはどうしたらよいですか?

https://pytorch.org/docs/stable/_modules/torch/nn/modules/conv.html#Conv2d

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

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

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

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

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

guest

回答1

0

ベストアンサー

まず、公式マニュアル Pythonチュートリアル 6. モジュール
を読んでください。

  • どうしてnn.Conv2dで呼び出せるのですか?

おそらく、from torch import nn していると思うので、print(nn)を実行すると

python

1>>> print(nn) 2<module 'torch.nn' from 'C:\AAA\BBB\lib\site-packages\torch\nn\__init__.py'>

とかが表示されるので、このファイルをエディタで開いてみます。

python

1from .modules import * 2from .parameter import Parameter 3from .parallel import DataParallel 4from . import init 5from . import utils

from .modules import *
があるので、
C:\AAA\BBB\lib\site-packages\torch\nn\modules_init_.py
をエディタで開いてみると、3行目ぐらいに

python

1from .conv import Conv1d, Conv2d, Conv3d, \ 2 ConvTranspose1d, ConvTranspose2d, ConvTranspose3d

があるはずです。
こういうように順にimportしているので、nn.Conv2dで呼び出せます。

  • このようにフォルダを超えて呼び出すクラスを作るにはどうしたらよいですか?

最初に上げた公式マニュアル Pythonチュートリアル 6. モジュールを読んで、C:\AAA\BBB\lib\site-packagesの下にある様々なパッケージを見てみてみれば作り方は分かります。

投稿2021/07/23 02:35

ppaul

総合スコア24666

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

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

nudesudesu

2021/08/11 09:24

(ご世話になっております、、学校が忙しくすみませんお返事が遅くなってしまいました。。。) とても助かりました!!!説明がとてもわかりやすく、いつかppaulさんみたいになりたいです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問