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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

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

PyTorch

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

Python

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

Q&A

0回答

511閲覧

NNの層の instance(/Object)を配列に入れたら、ネットparameter(重み、バイアス、等)がネットparameterリストに登録できなくなる❓

insecticide

総合スコア315

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

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

PyTorch

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

Python

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

0グッド

0クリップ

投稿2022/08/16 22:22

編集2022/08/21 11:14

Python

1 2class CNN_generator(nn.Module): 3 4 def __init__(self,convSetSet,device): 5 super(CNN_generator, self).__init__() 6 7 convSetSet=[ 8 [inChannels, outChannels[0], kernelSizes[0], { 'pReLu1':nn.PReLU(outChannels[0]).to(device) } ], 9 [outChannels[0], outChannels[1], kernelSizes[0], { 'pReLu2':nn.PReLU(outChannels[1]).to(device), 'MaxPool1':self.maxpool1, 'DropOut1':self.dropout1 } ], 10 [outChannels[1], outChannels[2], kernelSizes[0], { 'pReLu3':nn.PReLU(outChannels[2]).to(device) } ], 11 [outChannels[2], outChannels[3], kernelSizes[0], { 'pReLu4':nn.PReLU(outChannels[3]).to(device), 'DropOut2':self.dropout2, 'MaxPool2':self.maxpool2 } ] 12 ] 13 14 15 #### 1⃣ NN parameterリストに登録してくれない: 16 self.modules = [Conv2dBlock(convSetSet[0],device).to(device)]*10 #10個のNN layer生成したが、NNのパラメータListに反映してくれない 17 print("\n self.modules= \n",self.modules ) 18 19 20 #### 2⃣ NN parameterリストに登録してくれない: 21 for i,convSet in enumerate(convSetSet): 22 self.modules[i] = Conv2dBlock(convSet,device).to(device) #4個のNN layer生成したが、NNのパラメータListに反映してくれない 23 24 #### 3⃣ NN parameterリストに登録してくれない: 25 for convSet in convSetSet: 26 self.modules.append(Conv2dBlock(convSet,device).to(device)) #4個のNN layer生成したが、NNのパラメータListに反映してくれない 27 28 #### 4⃣ NN parameterリストに登録してくれない: 29 self.blocks = [nn.Sequential() for i in range(10)] 30 31 self.blocks[0].add_module("Block1_ConvB1", Conv2dBlock(convSetSet[0],device)) 32 self.blocks[1].add_module("Block1_ConvB2", Conv2dBlock(convSetSet[1],device)) 33 self.blocks[2].add_module("Block1_ConvB3", Conv2dBlock(convSetSet[2],device)) 34 self.blocks[3].add_module("Block1_MaxPool", nn.MaxPool2d(kernel_size=3, stride=2, padding=1)) 35 36 37 #======================================================================# 38 39 #### 5⃣ NN parameterリストに登録できる: 40 self.sequent = nn.Sequential() 41 self.sequent.add_module("Block1_ConvB3", Conv2dBlock(convSetSet[2],device)) 42 43上記5⃣の場合の結果:   44class CNN_generator(nn.Module)のinstanceのprint : 45 46(sequent): Sequential( 47 (Block1_ConvB3): Conv2dBlock( 48 (conv): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 49 (layers): Sequential( 50 (Conv2d): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 51 (BatchNorm2d): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) 52 (relu3): ReLU(inplace=True) 53 ) 54 ) 55 ) 56 57

nn.Sequential()を利用せず、単刀直入の場合

Python

1class CNN_generator(nn.Module): 2 3 def __init__(self,convSetSet,device): 4 super(CNN_generator, self).__init__() 5 6 #### 1⃣ NN parameterリストに登録してくれない: 7 8 self.convBlocks = [Conv2dBlock(convSetSet[0],device).to(device)]*10 9 10 for i,convSet in enumerate(convSetSet): 11 self.convBlocks[i] = Conv2dBlock(convSet,device).to(device) 12 13 #======================================================================# 14 15 #### 2⃣ NN parameterリストに登録できる: 16 self.convBlock0 = Conv2dBlock(convSetSet[0],device).to(device) 17 self.convBlock1 = Conv2dBlock(convSetSet[1],device).to(device) 18 self.convBlock2 = Conv2dBlock(convSetSet[2],device).to(device) 19 20 21上記2⃣の場合の結果:  class CNN_generator(nn.Module)のinstanceのprint : 22 23(convBlock0): Conv2dBlock( 24 (conv): Conv2d(1, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 25 (layers): Sequential( 26 (Conv2d): Conv2d(1, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 27 (BatchNorm2d): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) 28 (relu1): ReLU(inplace=True) 29 ) 30 ) 31 (convBlock1): Conv2dBlock( 32 (conv): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 33 (layers): Sequential( 34 (Conv2d): Conv2d(16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 35 (BatchNorm2d): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) 36 (relu2): ReLU(inplace=True) 37 (MaxPool1): MaxPool2d(kernel_size=(2, 2), stride=(2, 2), padding=0, dilation=1, ceil_mode=False) 38 (DropOut1): Dropout(p=0.25, inplace=False) 39 ) 40 ) 41 (convBlock2): Conv2dBlock( 42 (conv): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 43 (layers): Sequential( 44 (Conv2d): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False, padding_mode=replicate) 45 (BatchNorm2d): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) 46 (relu3): ReLU(inplace=True) 47 ) 48 ) 49

原因説明できる方宜しくお願いいたします。 💖💖

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問