はじめに 線形回帰と学習のコード データセット PyTorch TF2.0 違い 些細な違い:層の定義の仕方 些細な違い:ロス関数の書き方 大きな違い:勾配計算とパラメータ更新 ニューラルネットワークの簡単な書き方 PyTorch TF2.0 違い 畳み込みニューラルネットワーク PyTorch TF2.0 違い パディング 畳み込み層→線形層 traininigフラグ RNN PyTorch TF2.0 違い 大きな違い:多層化 些細な違い:Bidirectional 大きな違い:戻り値の並び 学習 はじめに 最近KerasからPyTorchに流れていく人たちが多く見受けられます。その中でて「Kerasで書いていたコードをPyTorchのコードで実装するにはどうすれば良いんだろう?」という声があります。要は、今まで使っていたフレームワークでやろうとしていたことを、別のフレームワークでやろ
こんにちは、GMOアドマーケティングのS.Rです。 良いモデルを作るには、大きなサイズの学習データが必要です。そして、高速にモデルをトレーニングすることができれば、イテレーションの短縮になります。今回は高速にモデルをトレーニングするために、複数のGPUでディープラーニングのモデルをトレーニングする方法を投稿します。本記事中の図説は、筆者が自らの環境で作成したものを含みます。 1. LibraryとTool: 今回は下記のディープラーニングのツールまたはライブラリを利用していました。 Tensorflow ディープラーニングに対応しており、Googleの各種サービスなどでも広く活用されている。 2017年2月15日に TensorFlow 1.0 がリリースされた。 対応プログラミング言語はC言語、C++、Python、Java、Go。 対応OSは64ビットのLinux(ただしバイナリ配布は
他のDLライブラリを勉強するのが面倒という理由でkerasで実装されていないネットワークを組んではいけないというアンチパターンの話。つまり闇のkerasに対する防衛術の話です。 kerasでゴリゴリ学習コードを書いてはいけない kerasはLSTMが数行で書けたり、vggなどの有名なモデルが揃っている、便利なラッパーとなっていますが、kerasで実装されていない論文のコードを書くことは極力避けましょう keras以外に慣れていなくてもです。 とっととtensorflowかpytorchを勉強してください。 理由 通常のフィードフォワードな分類or回帰のネットワーク(全結合、CNN、autoencoderなど)や既にラッパーが用意されているLSTMは瞬時に実装できますし、パラメータチューニングも簡単なので是非kerasを使いましょう ただし以下のような場合は絶対にkerasを使わないでくださ
転移学習として訓練済みモデルは非常に有用ですが、たまに途中にDropoutを入れたい、BatchNormを入れたいなど困ったことがおきます。今回はVGG16にBatchNormを入れる、MobileNetにDropoutを入れるを試してみます。 VGG16にBatchNormalizationを入れる 理論と実装上の注意 転移学習としてよく使われるVGG16ですが、実は古臭いモデルでBatchNormalizationが入っていません1。現在の分類問題において、よほどの理由がなければBatchNormalizationは入れるべきなので入れてみましょう2。 VGG16では、「Conv→Conv→Conv→Pool」のように並んでいますが、Conv→Convを「Conv→BatchNorm→ReLU→Conv→…」と置き換えます。また元のConvにはReLUの活性化関数がついているので、Co
Posted by Sandeep Gupta, Josh Gordon, and Karmel Allison on behalf of the TensorFlow team TensorFlow is preparing for the release of version 2.0. In this article, we want to preview the direction TensorFlow’s high-level APIs are heading, and answer some frequently asked questions. Keras is an extremely popular high-level API for building and training deep learning models. It’s used for fast protot
前書き 全てのプログラマーは写経から始まる。 by俺 この記事は機械学習入門用ではありません。良質な写経元を提供するためにあります。無駄のないコードと無駄のない説明を用意したつもりです。kerasコーディングを忘れかけた時に立ち返られる原点となれば幸いです。 実行環境 python (3.7.10) tensorflow (2.4.1) keras (2.4.3) 対象者 pythonを自分の環境で動かせる人 かつ keras初心者 ■ kerasとは python で書かれた高水準のニューラルネットワークライブラリ。 (keras公式) もっとわかりやすく言うと... ディープラーニングを自力で全部作るのは大変。 でも、kerasを使うと簡単だよ! ■ kerasコーディングの流れ データを用意する。 モデルを構築する。 モデルにデータを学習させる。 モデルを評価する。 ※モデルとは、デ
ディープラーニングで学習が進んだあとに学習率を下げたいときがときどきあります。Kerasでは学習率を減衰(Learning rate decay)させるだけではなく、epoch数に応じて任意の学習率を適用するLearningRateSchedulerという便利なクラスがあります。これを見ていきましょう。 学習率変化なし 10層のCNNでCIFAR-10で検証精度90%を達成したコードを使い回しします。これは学習率の変化がありません。Adamでずっとデフォルトの0.01の学習率を維持します。 学習の過程は次のように進みます。 任意の学習率減衰(SGD) 次に、DenseNetの論文で出てきたオプティマイザーはSGD(モメンタム)で、初期の学習率は0.1で、全体の50%のepochで学習率を1/10(0.01)に、全体の75%でさらに1/10(0.001)にするという減衰操作を行います。Den
Keras のバックエンドに TensorFlow を使う場合、デフォルトでは一つのプロセスが GPU のメモリを全て使ってしまう。 今回は、その挙動を変更して使う分だけ確保させるように改めるやり方を書く。 環境には次のようにしてセットアップした Ubuntu 16.04 LTS を使っている。 blog.amedama.jp サンプルとして動作させるアプリケーションには Keras が提供している MNIST データセットを CNN で認識するものを使う。 まずはこれをダウンロードしておこう。 同時に、セッションをクリアするパッチも追加しておく。 $ wget https://raw.githubusercontent.com/fchollet/keras/master/examples/mnist_cnn.py $ echo 'K.clear_session()' >> mnist_c
こんにちは。アドバンストテクノロジー部のR&Dチーム所属岩原です。 今回はKerasを使ってメモリに乗り切らないぐらいの大量データを学習させる方法について紹介したいと思います。 個人的にハマったポイントなので、同じように困ってる方々の力になれれば…と思ってます。 Kerasとは何ぞや、とか使い方云々はまた別途記事を書きたいと思います。 対象読者 Kerasを使ってある程度の学習は出来る人 Pythonがある程度読める人 Unix系OSでKerasを動かしている人 今回はモデルの構築などは省略しています。 確認環境 Python:3.6.1 Keras:2.0.8 tensorflow-gpu:1.3.0 (今回は特に関係ありません) 想定場面 それでは、具体的な場面を想定してみましょう。 クエストのログを使って学習したい。クリア or notのデータがcsvデータとして手元にある。 クレン
はじめに Eager Executionの書き方 インポート データの準備 モデルの書き方 学習コード モデルの評価 補足 Google colabでのTensorBoard 最後に はじめに TensorFlow2.0から Eager Execution と Keras API が標準になる見込みです。すでにブログではこのことを何度か取り上げています。 www.hellocybernetics.tech www.hellocybernetics.tech 今回は、TF2.0から最も標準的になると思われるコードの書き方を見ておきましょうというテーマになります。 特にディープラーニングのテクニックや手法の考察などは行わないので、あくまで書き方の参考という程度に御覧ください。 コードはgoogle colabで書いていったので、基本的にはjupyter notebookなどで動作させることを想
こんにちは。アドバンストテクノロジー部のR&Dチーム所属岩原です。 今回はKerasで複数のGPUを使う方法を書きたいと思います。 Keras 2.0.9から簡単に複数GPUを使用した高速化が可能に。 Keras2.0.9からtraining_utilsというモジュールにmulti_gpu_modelという関数が追加されました。 コレを使うと、学習を複数のGPUで行わせることが可能になります。 inputをGPUの数だけ分割することによって、並列化を実現しているようです。 keras/training_utils.py at master · keras-team/keras では、実際に試してみましょう。 環境 AWS EC2(p2.8xlarge) -> GPU8本 Deep Learning Base AMI (Ubuntu) Version 2.0 (ami-041db87c) -
コールバックの使い方 コールバックは訓練中で適用される関数集合です.訓練中にモデル内部の状態と統計量を可視化する際に,コールバックを使います.SequentialとModelクラスの.fit()メソッドに(キーワード引数callbacksとして)コールバックのリストを渡すことができます.コールバックに関連するメソッドは,訓練の各段階で呼び出されます. [source] Callback keras.callbacks.Callback() この抽象基底クラスは新しいコールバックを構築するために使用されます. プロパティ params: 辞書.訓練のパラメータ(例: 冗長性,バッチサイズ,エポック数...). model: keras.models.Modelのインスタンス.学習されたモデルへの参照. コールバック関数が引数としてとる辞書のlogsは,現在のバッチ数かエポック数に関連したデー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く