質問するログイン新規登録
深層学習

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

PyTorch

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

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python 3.x

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

Q&A

解決済

1回答

1616閲覧

CNN層が持つparametersの数(理論値)の計算方法

insecticide

総合スコア315

深層学習

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

PyTorch

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

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python 3.x

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

0グッド

0クリップ

投稿2022/06/30 12:43

編集2022/06/30 12:46

0

0

CNN層が持つparametersの数の理論値を求めるには下記のような計算方法で大丈夫でしょうか。

CNNのフィルターの形状=(h,w,c) とします。
h : フィルターの縦サイズ
w : フィルターの幅サイズ
c : 当該layerの入力mapのchannel数, =入力map枚数

一つのCNN のlayerが持つparameter数 = (h×w×c×n + n)×m

n : 一枚の出力map上の要素数, =bias parameterの数
m : 出力map数


正しいかどうかご教授お願い致します。

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

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

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

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

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

insecticide

2022/07/01 03:49 編集

早速お返答ありがとうございます。 貴重な情報も助けります 💞 ぶっちゃけ、ショック❣ という事は、一枚の特徴mapを生成するには一つの=1-setのfilter係数変数しかない? 訓練も同じfilter係数変数セットに対して、1枚のmap上の多量のmap データで同時にgardを計算するのでしょうか?? 結果が衝突するじゃないの?! 等々 ショック
jbpb0

2022/07/01 03:53

> 一枚の特徴mapを生成するには一つの=1-setのfilter係数変数しかい? ・畳み込みカーネルはcセット ・バイアスは一つ だと思います
insecticide

2022/07/01 05:34 編集

jbpb0さまのご理解が正しいと思います。 自分がずっと間違った認識を持っていました。 正解は恐らく、下記の通り。 例えば、1つのbiasの更新するために対応する1枚map(2D)上の64×64の要素によって同じfilter変数に別々にgradを算出し、更に(mini-)batch sizeが1000であれば、64×64×1000=4,096,000種類のgrad値が算出されます。 この4,096,000個のgrad値のどれを信用すべき? 分からないので、無理矢理に和を取って(平均を取るのも可能)、真のgrad値とし、そのfilter変数の更新に使う。。。 むー、 まあ、一種の『統計的な』更新手法かな。 これに対して 「ランダム的な=<確率的勾配降下法(SGD)>」という更新手法もありますね。 どっちがマシでしょうね? 自分の脳は理解力が明らかに不足。。。
guest

回答1

0

ベストアンサー

投稿2022/07/29 03:18

jbpb0

総合スコア7658

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

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

insecticide

2022/07/29 11:02

ご教授ありがとうございます。 >h×w×c×m + m >だと思います 今の自分の認識と一致します。 入出力のユニット数とは関係なく、みんな畳み込みfilter係数(NN parameter)を共用する事は最近やっと悟りました。 再度お礼申し上げます。💖
insecticide

2022/07/29 11:04

> [図解]ディープラーニングのパラメーター数ってどうやって数えるんだっけという人へ これは凄い❣ 本当にありがとうございました ❣❣
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問