top of page

分類 Classification

公開·1名のメンバー

TensorflowとPyTorch

最近はPyTrochをよく使っています。10年くらい前はTensorflowばかり使っていたのに...


いま改めてTensorflowとPyTorchの違いについて考えてみました。



個人的に両者の最も大きな違いは、モデルに対するデータの渡し方と誤差逆伝播の書き方。

まずはデータの渡し方。

Tensorflowでは、特徴量データと教師データを明確に分けて、例えばX_trainとy_trainといった形でモデルに渡します。一方Pytorchは特徴量データと教師データをデータローダーにまとめて、データローダーをモデルに渡します。そしてバッチサイズはデータローダー内で定義します。Tensorflowではモデル内でバッチサイズを定義します。


誤差逆伝播ですが、Tensorflowでは誤差逆伝播については、ほぼ意識する必要はありませんでした。PyTorchではエポックを回す関数の中で、予測値の計算→誤差計算→勾配計算→パラメータ修正を明示的に描く必要があります。


このようにしてみると、PyTorchのほうが面倒そうですが、fastaiをつかうと、データローダの定義やモデル定義が本の数行で書けてしまうし、誤差逆伝播からパラメータ修正の部分も書く必要がなくなっています。


fastaiは簡単にPyTorchを使うことができてとても便利なのですが、深層学習が完全にブラックボックス化してしまって、自分が書いたコードのどこで何が行われているのかがさっぱりわからなくなります。特に機械学習を始めたばかりの方にとっては、自分の学習のためにはTensorflowなりPyTorchなりを一通り学んだうえで、fastaiを使うことをお勧めします。

閲覧数:12

新規投稿をお知らせします。

登録ありがとうございます。

© 2023 by Healthy Together. Proudly created with Wix.com

bottom of page