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

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

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

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

Keras-RL

Keras-RLは、Kerasを用いてDQNなどの深層強化学習アルゴリズムを実装したライブラリです。学習する強化学習の環境をOpenAI Gymのインターフェースに準じて作成することが必要です。

PyTorch

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

機械学習

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

Q&A

解決済

1回答

5716閲覧

Keras→Pytorch Dense()をpytorchで書く場合

退会済みユーザー

退会済みユーザー

総合スコア0

Keras

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

Keras-RL

Keras-RLは、Kerasを用いてDQNなどの深層強化学習アルゴリズムを実装したライブラリです。学習する強化学習の環境をOpenAI Gymのインターフェースに準じて作成することが必要です。

PyTorch

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

機械学習

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

0グッド

0クリップ

投稿2021/07/31 08:21

pythonで以下のコードをpytorchに置き換えたいのですが、pytorchで書くとどうなるのでしょうか?

python

1model = tf.keras.Sequential([ 2 tf.keras.layers.Dense(300, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu, input_dim=df_columns_len), 3 tf.keras.layers.Dropout(0.2), 4 tf.keras.layers.Dense(100, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu), 5 tf.keras.layers.Dropout(0.2), 6 tf.keras.layers.Dense(1, activation=tf.nn.sigmoid) 7 ])

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

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

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

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

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

guest

回答1

0

ベストアンサー

PyTorchでは、概ね以下のように、class定義をして記述します。

Python

1class MLP(torch.nn.Module): 2 def __init__(self): 3 super().__init__() 4 self.classifier = torch.nn.Sequential( 5 torch.nn.Linear(df_columns_len, 300), 6 torch.nn.ReLU(), 7 torch.nn.Dropout(0.2), 8 torch.nn.Linear(300, 100), 9 torch.nn.ReLU(), 10 torch.nn.Dropout(0.2), 11 torch.nn.Linear(100, 1), 12 torch.nn.Sigmoid(), 13 ) 14 def forward(self, x): 15 x = self.classifier(x) 16 return x 17 18model = MLP()

MLPというクラス名は任意でよいですが、単純な線形結合の場合、MLP(Multilayer perceptron)という名称が使われることが多いようです。KerasとPyTorchの比較記述は、以下の私の記事でも紹介していますので、参考にしてください。

PyTorch初挑戦の記録、tf.kerasとの比較実装

なお、概ね、というのは、正則化を省いているからです。PyTorchではレイヤーの中で正則化をする記述はあまり一般的ではなさそうです。以下は正則化を損失関数で実施している例です。

PyTorchで線形回帰+L1/L2正則化

ただし、過学習の対策として、こういった教科書的な正則化は、最近では使われません。その代わり、バッチ正規化(Batch Normalization)というものが使われます。バッチ正規化はPyTorchでもレイヤー内に記述可能です。

参考: PyTorchで学ぶ『平均』と『分散』と『BatchNormalization』

投稿2021/07/31 14:00

toast-uz

総合スコア3266

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問