ONNX Support

ReNom2.7は, ONNX形式によるニューラルネットワークモデル出力をサポートします.出力されたONNXファイルは, ONNXをサポートするDeepLearningフレームワークから読み込むことが可能です.

renom.utility.onnx

renom.utility.onnx. export_onnx ( name , model , x , path , printtext=False )

与えられたニューラルネットワークモデルをONNX形式で出力する.

パラメータ:
  • name ( str ) -- 出力する計算グラフ(ニューラルネットワークモデル)の名前.
  • model ( Model ) -- ニューラルネットワークモデル.
  • x ( ndarray ) -- 計算グラフを構築するために必要な, 擬似入力.
  • path ( str ) -- ONNXファイルを出力するファイルパス.
  • printtext ( bool ) -- Trueが与えられた場合, この関数はstr(model)をプリントする.

ニューラルネットワークモデルをONNX形式で出力する

import renom as rm
import renom.utility.onnx as onnx

# Define a CNN
cnn = rm.Sequential([
    rm.Conv2d(channel=32, filter=3, padding=1),
    rm.Relu(),
    rm.Conv2d(channel=64, filter=3, padding=1),
    rm.Relu(),
    rm.MaxPool2d(filter=2, stride=2),
    rm.Dropout(0.5),
    rm.Flatten(),
    rm.Dense(128),
    rm.Relu(),
    rm.Dense(10)
])

# Train the CNN on some dataset
# ... CNN Train ...

# Save the trained model as ONNX fomrat.
# Note: This requires ``dummy_input`` for build a computational graph.
dummy_input = np.random.random((1, 1, 28, 28))
onnx.export_onnx("mnist", cnn, dummy_input, "mnist.onnx")

ONNX形式での出力がサポートされている関数

ReNom内に定義されている以下の関数は, ONNX形式での出力に対応しております.

Operations

  • __neg__
  • __add__
  • __abs__
  • __sub__
  • __mul__
  • __div__