2017-05-24 12 views
1

今、私はTensorflow Servingを研究しており、Custom Servableを作成しようとしています。Tensorflow Serving C++構文

したがって、私はhashmap_source_adaptorに関するコードを読んでいます(これはTensorflow Servingのサンプルコードです)。

しかし、いくつかのコードがありますが、わかりません。

HashmapSourceAdapter::HashmapSourceAdapter(
    const HashmapSourceAdapterConfig& config) 
    : SimpleLoaderSourceAdapter<StoragePath, Hashmap>(
      [config](const StoragePath& path, std::unique_ptr<Hashmap>* hashmap) { 
      return LoadHashmapFromFile(path, config.format(), hashmap); 
      }, 
      // Decline to supply a resource footprint estimate. 
      SimpleLoaderSourceAdapter<StoragePath, 
            Hashmap>::EstimateNoResources()) {} 

HashmapSourceAdapter::~HashmapSourceAdapter() { Detach(); } 

[設定]とは4行目のことですか?

私にそれを検索するためのアイデアやヒントを教えてください。

原点のコードはこのリンクにあります。私は70行目を理解できません。 https://github.com/tensorflow/serving/blob/master/tensorflow_serving/servables/hashmap/hashmap_source_adapter.cc#L70

ありがとうございました。

答えて

1

[config]は、ラムダ式のキャプチャリストです。特に指定されていないので、値でconfigをキャプチャします。これは、configが何を参照しているかをコピーし、ラムダの内側で見えるようにします。ラムダ式のコードはconfigを使用するためconfigキャプチャ

は、必要とされる:

リターンLoadHashmapFromFile(パス、設定 .format()、ハッシュマップ)。

configは、ラムダ式の中に何かを意味するものとして、取り込まなければなりません。特に、ラムダ式は、基本的にクラスを作成するためのショートカットです。キャプチャリスト(実際にはラムダ式の内部で使用される)内の何かは、そのクラスのctorに渡されるパラメータになります(ラムダ式の本体は、そのクラスのoperator()()のオーバーロードの本体になります)。