2016-11-02 3 views
2

現在、テンソルの代わりにCaffeで開発された深い学習モデルがたくさんあります。これらのモデルをテンソルフローで書き直したいのであれば、どのように起動するのですか?私はカフェ構造に精通していません。モデルアーキテクチャのみを格納しているファイルがいくつかあるようです。私の推測では、これらのアーキテクチャ設計を理解してTensorflowに移すだけでよいということです。入力/出力/トレーニングはとにかく書き直されます。これは意味があると思いますか?caffe to tensorflow

Caffeの実装では、元のCaffeフレームワークをC++レベルにハックしていくつか修正する必要があります。私は、Caffeモデルの開発者がどんなシナリオでそれを深く理解する必要があるかわからないのですか? Tensorflowでモデルを再実装したいだけの場合は、C++の変更を確認する必要がありますが、これはまったくドキュメント化されていないことがあります。

Caffe-Tensorflow変換ツールがいくつかあります。しかし、常にいくつかの制約があり、私はモデルを直接書き直すのがより簡単かもしれないと思います。

チュートリアルへのご意見、ご提案、およびリンクは高く評価されています。

+0

シングルのための結果を一致させる、私はカフェを知らないが、私はで開始する任意のトーチまたはLUAを知らなくてもTFにいくつかのトーチモデルを移植し、一般的な戦略は、可能な限り最小のネットワークで開始するようになっていますあなたがCaffeに似たアプローチをすることができるかもしれません。 –

+1

Caffeモデルの開発者は、Caffeに新しい操作を追加するためにC++レベルに移行する必要があります。特定の操作はすでにテンソルフローになっているかもしれませんが、同じ動作をすることは確かではありません。一般的に、カスタムコードが何をするのかを理解する必要があります。 –

答えて

2

私はすでにa similar questionと尋ねました。

は可能な答えをsynthetiseするには:あなたが(使用する本当に簡単です) etheron's kaffeのような既存のツールを使用することができますいずれか

  1. 。しかし、シンプルさにはコストがかかります。デバッグは容易ではありません。

  2. @ Yaroslav Bulatovは最初から答え始め、各レイヤーを一致させようとしました。これに関しては、ry's githubを参照することをお勧めします。これは、基本的に小さなヘルパー機能を持ち、caffeからTensorflowへのウェイトを適切に再形成する方法を示しています。これは、シンプルなモデルを作成するためには、レイヤーごとにレイヤーチェックをアクティブにします。

+0

Jeanありがとうございます。アクティベーションチェックに関して、それはどういう意味ですか?もっと説明しますか? – user288609

+0

ryからのコードはかなり説明していますが、原則として、一度に各レイヤーを1つずつ入力することを選択し、この入力からCaffeレイヤーを介して取得したアクティベーションと、テンソルフロー層から得られるアクティベーションは特定のしきい値よりも劣ります。 – jean

+0

ryの機能は次のとおりです。 def same_tensor(a、b): return np.linalg.norm(a-b)<0.1 なぜ彼は閾値として0.1を選んだのかわかりません。 – jean