Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Intel Deep Learning SDK


4月9日のブログ、INTEL AND MLにも出てきた


をチェックしました。


Intel® Deep Learning SDKから
ツールは、「Training Tool」と「Deployment Tool」から構成される
引用
 ・Training Tool

  Easily prepare training data, design models, and train models with automated 
  experiments and advanced visualizations
  Simplify the installation and usage of popular deep learning frameworks 
  optimized for Intel platforms

  Data scientists are the primary users.

 ・Deployment Tool

  Optimize trained deep learning models through model compression and weight 
  quantization, which are tailored to end-point device characteristics
  Deliver a unified API to integrate the inference with application logic

  Application developers are the primary users.

Training Toolは、データサイエンティスト用
Deployment Toolはアプリケーション開発者用

なので、ここからは、Deployment Toolのみを
引用
  Required Hardware  Optimized for Intel® Xeon® and Intel® Core™ processors
  Required OS     Development Environment: Ubuntu 14.04, 16.04 (64 bit)
  Target Inference Platform: 
            Ubuntu 14.04 (64 bit)
  Supported Use Cases	Image classification and image segmentation
  Supported Layers	Convolution, deconvolution, fully connected, pooling, 
            rectified linear unit (RelU), softmax, eltwise, crop, 
            local response normalization (LRN), 
            concatenation, power, and split

開発環境は、Ubuntu 14.04と16.04(64bit)のみ。
で、ターゲットもUbuntu 14.04(64bit)

えええええ、ということは組み込みには使えないということなのか?

ドキュメントもチェックしました。

Deplymento Toolは、下記の2つ(Model OptimizerとInference Engine)から構成される
引用
  Model Optimizer  

  Model Optimizer is a cross-platform command line tool that:
   • Takes as input a trained network that contains a certain network topology, 
     parameters, and the trained weights and biases. 
     The Model Optimizer currently only supports input networks 
     that are produced using the Caffe* framework.
   • Performs horizontal and vertical fusion of the network layers.
   • Prunes unused branches in the network.
   • Applies weights compression methods.
   • Produces as output an Internal Representation (IR) of the network 
     – a pair of files that describe the whole model:  
   • Topology file – an .xml file that describes the network topology. 
   • Trained data file 
     – a .bin file that contains the weights and biases as binary data. 
   • The produced IR is used as an input for the Inference Engine. 

  Inference Engine  

  Inference Engine is a runtime which: 
   • Takes as input an IR produced by Model Optimizer 
   • Optimizes inference execution for target hardware 
   • Delivers inference solution with reduced footprint on embedded inference platforms
   • Enables seamless integration with application logic, 
     which eases transition between platforms from Intel® through 
     supporting the same API across a variety of platforms. 


Model Optimizerが.prototxtと.caffemodelを読み込み、IR(.xmlと.bin)を出力する
そのIRをInference Engineを組み込んだアプリケーションが読み込むと。。。

そして、Model Optimizerの制約は。。。
引用
  • It is distributed for 64-bit Ubuntu* OS 14.04 only.
  • It can process models in Caffe* format only.
  • It can process popular image classification network models, 
      including AlexNet, GoogleNet, VGG-16, LeNet, and ResNet-152, 
      and fully convolutional network models like FCN8 
      that are used for image segmentation. 
      It may fail to support a custom network. 


It may fail to support a custom network


え、何?