Univ/CS231n/Assignment2/TensorFlow(テンサーフロー)をやる。人気フレームワークを使った機械学習のエクササイズだ。現時点では、グーグルのテンソルフローとフェイスブックのパイトーチが人気を二分しているので、両フレームワークだけやっていればいいという人も多い。TensorFlow?¶TensorFlowとは、変数に対して誤差逆伝播法を実行する機能をネイティブで備えた、テンソルオブジェクトを介して計算グラフを実行するシステムのことを指す。ndarrayに類似したn次元アレイであるテンソルを使用して作業をする。テンサーフローはコードをGPUで実行できるので、はるかに高速でモデルの訓練を実行することが可能になる。GPUで実行するための自身のモジュールを書くことは、残念ながら、この講義の範囲を超えているので割愛する。これら(PyTorchとTensorFlow)のフレームワークの一つをプロジェクトに使えば、使いたい機能を全て手書きするよりも効率的に実験を実施できる。Datasets¶いつものように先ずデータ・セットをロードする。(Nはデータ点の数、Hが各画像の縦の画素数、Wが各画像の横の画素数、Cがチャネル数(通常はRGBの3))。これは、画素がどこで互いに関連し合うかの空間把握が必要な2D畳み込みのようなことをやる場合、画像データを構成する正しいやり方だ。全結合アフィン層に画像データを入力する場合、各データ標本は単一ベクトルによって形成したい。データを別個のチャネルや行、列に分けることが有益でなくなるからだ。itself¶モデルを訓練する最初のステップ、アーキテクチャを定義する。下記のテンサーフローで定義された畳み込み神経回路網の一例を見て、それぞれの行が何をしているのかを理解し、各層が前の層の上に形成されていることを覚えておく。モデルの訓練を始める前に、どのようにして全てがセットアップされるのかを理解する。(ReLU活性化)、全結合層(線形)が使われている。パラメーターが5408と10である理由を確実に理解する。Details¶テンソルフローでは、過去やったように、最初に変数をきっちり初期化してからネットワークモデルを初期化する。オブジェクトを作成する必要がある。セッションは、テンソルフロー・ランタイムの制御と状態をカプセル化してい。guideを参照のこと。等のデバイスコンテクストも指定することも可能だ。約0.4~0.6の検証損失と0.30~0.35未満の正確度が期待できるはず。model¶この箇所で構築するモデルを指定する。ここでのゴールは、モデルの性能ではなく(それは次の課題)、TensorFlowの参照資料に慣れ親しむことと、自分のモデルを設定することである。指針として上で提供されたコードを使用し、また、TensorFlowの説明書を利用して、下記の仕様でモデルを特徴付ける。10になるはず)を下のツールを使ってチェックする。10)True上のセルを実行することで以下が出力されるはず。次に、モデルの訓練にGPUを使ってみる。残りのコードは修正する必要はなく、全ての変数と演算は加速コードパスを使って計算される。出て、グラフを再構築しなければならなくなる。CPUの場合上の実行速度は大体50~80ms/batchで、GPUだと下の実行速度は約2~5ms/batchになるはず。each)このように単純なフォワードパスでさえもGPUの方が有意に速いので、今後モデルを訓練する時はGPUを使うようにしましょう。言っても、TensorFlowの場合、GPUがあれば既定のデバイスがGPUで、ない場合はCPUとなっているので、今後はデバイス指定は省略できる。model.¶モデルの定義の仕方と定義したモデルを使って、適当なデータで単一フォワードパスを実践したので、実際に、どのようにして、自分の訓練データで全1エポックを(上にある自分で作成したcomplex_modelを使用して)訓練するかを一つずつ説明する。実装したものとどのように対応するのかを理解していることを確認する。最初に、RMSpropオプティマイザ(学習率=1e-3)と交差エントロピー損失関数を設定する。詳細については下記のTensorFlowの資料を参照。下記でセッションを作成して1エポックモデルを訓練する。損失は1.4~2.0、正確度は0.4~0.5の範囲内で収まるはずだが、乱数シードと初期設定の違いのせいで多少のばらつきはあるだろう。訓練/テストコードを実行して確認する(下で作るモデルを検証する際に、これらの手法を遠慮なく利用してよい)。損失1.3~2.0、正確度0.45~0.55に収まるはず。量子コンピューター実現へ向けまた一歩大きな前進!量子コンピューターは近い将来確実に実現されるのですが、それがいつになるのかは現段階では不明です。'lmdb'エラーが出たの...記事を読むPythonプログラミング:virtualenvにpolyglotをインストールpolyglotを仮想環境にインストールするのはかなりの手間がかかる。