- MacOS10.14.2
- python3.6.4
- clang/clang++ Apple LLVM version 10.0.0 (clang-1000.11.45.5)
- git clone
- リポジトリのroot directoryで
setup.sh
を実行
- chainer-compiler用のvenvを作成してactivate
- submoduleとしてchainerとonnxのリポジトリがfetchされたので、それぞれのディレクトリで
pip install -e .
- onnxをインストールしようとしたらpybind11がないと怒られたので
brew install pybind11
- 以下setup.mdの通りに
mkdir build
cd build
cmake -DCHAINER_COMPILER_BUILD_CUDA=OFF ..
make
gast
がないと怒られたので pip install gast
sequence_type
という謎のフィールドが未定義で死亡 😇
Traceback (most recent call last):
File "/Users/kazuhiroserizawa/Documents/python-work/chainer-compiler/ch2o/tests/model/Resnet_with_loss.py", line 129, in <module>
ch2o.generate_testcase(model, [v, t])
File "/Users/kazuhiroserizawa/Documents/python-work/chainer-compiler/ch2o/ch2o/testcasegen.py", line 140, in generate_testcase
onnxmod = compile_model(get_model(), xs)
File "/Users/kazuhiroserizawa/Documents/python-work/chainer-compiler/ch2o/ch2o/chainer2onnx.py", line 1117, in compile_model
input_values = [Value(i) for i in input_tensors]
File "/Users/kazuhiroserizawa/Documents/python-work/chainer-compiler/ch2o/ch2o/chainer2onnx.py", line 1117, in <listcomp>
input_values = [Value(i) for i in input_tensors]
File "/Users/kazuhiroserizawa/Documents/python-work/chainer-compiler/ch2o/ch2o/value.py", line 30, in __init__
assert not (self.is_tensor() and self.is_sequence())
File "/Users/kazuhiroserizawa/Documents/python-work/chainer-compiler/ch2o/ch2o/value.py", line 62, in is_sequence
return not self.is_py and self.value.type.HasField('sequence_type')
ValueError: Unknown field sequence_type.
make[2]: *** [stamp_out/ch2o_model_Resnet_with_loss] Error 1
make[1]: *** [CMakeFiles/model_Resnet_with_loss.dir/all] Error 2
make: *** [all] Error 2
- documentよく見たらpipでインストールせいと書いてあったのでやり直し
pip uninstall onnx
pip install onnx==1.3.0 onnx_chainer
- protbufのヘッダとオブジェクトファイルが見つからんと言われたのでCPLUS_INCLUDE_PATH, LIBRARY_PATHにパスを追加
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/Cellar/protobuf/3.6.1.3_1/lib
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/Cellar/protobuf/3.6.1.3_1/include
[ 90%] Building CXX object compiler/CMakeFiles/compiler_test.dir/gradient_test.cc.o
[ 90%] Building CXX object compiler/CMakeFiles/compiler_test.dir/model_test.cc.o
[ 90%] Building CXX object compiler/CMakeFiles/compiler_test.dir/scheduler_test.cc.o
[ 91%] Building CXX object compiler/CMakeFiles/compiler_test.dir/tensor_test.cc.o
[ 91%] Building CXX object compiler/CMakeFiles/compiler_test.dir/topology_test.cc.o
[ 91%] Building CXX object compiler/CMakeFiles/compiler_test.dir/xcvm/emitter_test.cc.o
[ 92%] Linking CXX executable compiler_test
Undefined symbols for architecture x86_64:
"chainer_compiler::Value* chainer_compiler::GraphBuilder::Const<long long>(chainer_compiler::Type const&, std::__1::vector<long long, std::__1::allocator<long long> > const&, chainer_compiler::Value*)", referenced from:
chainer_compiler::(anonymous namespace)::ReplaceShape(chainer_compiler::Graph*, chainer_compiler::Node*) in libchainer_compiler_compiler.a(simplifier.cc.o)
chainer_compiler::Value* chainer_compiler::GraphBuilder::Const<long long>(chainer_compiler::Type const&, std::initializer_list<long long> const&, chainer_compiler::Value*) in libchainer_compiler_compiler.a(simplifier.cc.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [compiler/compiler_test] Error 1
make[1]: *** [compiler/CMakeFiles/compiler_test.dir/all] Error 2
make: *** [all] Error 2