TensorFlowの日本語まとめ

TensorFlowの公式サイトに書かれている英文を英語ど素人が翻訳(日本語訳/和訳)します。 間違いがありましたら、優しく教えていただけますと幸いです。 内容を理解したら、使ってみたい。

Adding a New Op

11.GPU Support

あなたは、異なるカーネルを実装し、さまざまな種類のカーネルを登録することができます。同じように、GPUのためのCPU用と別のものを登録することができます。tensorflow/core/kernels/でのGPUをサポートしたカーネルのいくつかの例があります。いくつかのカ…

10.OP登録 Backwards compatibility

Backwards compatibility 一般的には、仕様への変更は下位互換性がなければなりません。:OPの仕様を変更すると、古い仕様から構築前にシリアライズされたGraphDefプロトコルバッファを破壊してはなりません。GraphDefの互換性の詳細については、ここで説明 …

9.OP登録 Inputs and Outputs

Inputs and Outputs 上記を要約すると、OPの登録は、複数の入力と出力を持つことができます。: REGISTER_OP("MultipleInsAndOuts") .Input("y: int32") .Input("z: float") .Output("a: string") .Output("b: int32");

8.OP登録 Polymorphism

Polymorphism Type Polymorphism 入力として、異なる種類を取るか、または異なる出力タイプを生成することができOPSでは、OPの登録で入力または出力タイプのattrを指定することができます。通常は、各サポートされているタイプの OpKernelを登録する必要があ…

7. OP登録 Attr types

Attr types 以下のタイプがattrでサポートされています。 string: バイトの任意のシーケンス(UTF8である必要はありません)。 int: 符号付き整数。 float:浮動小数点数。 bool: True or false. type: DataTypeの(non-ref)値の1つ。 shape: TensorShapePro…

6.OP登録 Attrs

Attrs OPSは、その値がOPをグラフに追加されたときに設定されるattrsを有することができます。これらは、OPを構成するために使用され、それらの値は、カーネルの実装内およびOP登録における入力と出力のタイプの両方にアクセスすることができます。入力がよ…

5.検証

上記の例では、OPは、任意の形状のテンソルに適用することを想定しました。ベクトルに適用されるのみの場合はどうなりますか?つまり、上記のカーネルの実装にチェックを追加することを意味します。

4.PythonでOPを使用しました

TensorFlow PythonのAPIは、動的ライブラリをロードし、TensorFlowフレームワークとOPを登録するload_op_library機能を提供します。load_op_libraryは、OP用のPythonラッパーが含まれているPythonモジュールを返します。あなたはOPを内蔵したらこれは、Pytho…

3.OPのライブラリを構築

TensorFlowバイナリのインストールと お使いのシステムでの g++のようなC++コンパイラや利用可能なclang と zero_out.ccをコンパイルすることができるはずです。バイナリーPIPパッケージには、システム固有である場所であなたのOPをコンパイルする必要がある…

2.OP用のカーネルを実装

あなたがインターフェイスを定義した後、OPの一つ以上の実装を提供します。OpKernelを拡張し、Computeメソッドをオーバーライドするクラスを作成し、これらのカーネルの1つを作成します。Computeメソッドを使用すると、入力と出力のセンサーのような便利なも…

1.新しいOPを追加する

前提条件: C++にある程度慣れていること。 TensorFlow binaryをインストールしておく必要があり、またはTensorFlow sourceをダウンロードしておく必要があり、そしてそれを構築することができます。