Giter Club home page Giter Club logo

blueoil's People

Contributors

ananno avatar antonionevado avatar ed728 avatar fumihwh avatar hadusam avatar iizukak avatar joeln123 avatar joeper214 avatar kchygoe avatar kurarrr avatar lm-jira avatar lm-kajihara avatar lm-kasuga avatar lm-konda avatar lm-lily avatar n-nez avatar nlpng avatar oatawa1 avatar odoku avatar patrick-su avatar primenumber avatar ruimashita avatar suikaba avatar suttang avatar tk26eng avatar tkng avatar tsawada avatar yd8534976 avatar yoya avatar ytfksw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blueoil's Issues

dlk jenkins output fatal: Not a a git repository

dlk jinkins output

.fatal: Not a git repository (or any of the parent directories): .git

screen shot 2018-11-26 at 20 08 06

full text:
http://jenkins.leapmind.local:8080/job/blueoil_dlk_test/107/consoleText

GitHub pull request #39 of commit dbc61b6dc8a1acb7ae1b16e7610a9600989664d2, no merge conflicts.
Setting status of dbc61b6dc8a1acb7ae1b16e7610a9600989664d2 to PENDING with url http://jenkins.leapmind.local:8080/job/blueoil_dlk_test/107/console and message: 'Build started for merge commit.'
Using context: [dlk] jenkins test
Building in workspace /var/lib/jenkins/workspace/blueoil_dlk_test
[WS-CLEANUP] Deleting project workspace...
[WS-CLEANUP] Deferred wipeout is used...
[WS-CLEANUP] Done
Cloning the remote Git repository
Cloning repository [email protected]:blue-oil/blueoil.git
 > git init /var/lib/jenkins/workspace/blueoil_dlk_test # timeout=10
Fetching upstream changes from [email protected]:blue-oil/blueoil.git
 > git --version # timeout=10
 > git fetch --tags --progress [email protected]:blue-oil/blueoil.git +refs/heads/*:refs/remotes/origin/*
 > git config remote.origin.url [email protected]:blue-oil/blueoil.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url [email protected]:blue-oil/blueoil.git # timeout=10
Fetching upstream changes from [email protected]:blue-oil/blueoil.git
 > git fetch --tags --progress [email protected]:blue-oil/blueoil.git +refs/pull/*:refs/remotes/origin/pr/*
 > git rev-parse refs/remotes/origin/pr/39/merge^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/pr/39/merge^{commit} # timeout=10
Checking out Revision bbe223ffab206b910bf5f2593ecc2f49dd88940f (refs/remotes/origin/pr/39/merge)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f bbe223ffab206b910bf5f2593ecc2f49dd88940f
Commit message: "Merge dbc61b6dc8a1acb7ae1b16e7610a9600989664d2 into b2cb12a677e08ca921de4d49271ce6ee22363fc9"
First time build. Skipping changelog.
 > git remote # timeout=10
 > git submodule init # timeout=10
 > git submodule sync # timeout=10
 > git config --get remote.origin.url # timeout=10
 > git submodule init # timeout=10
 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10
 > git config --get submodule.runtime/yaml-cpp.url # timeout=10
 > git config -f .gitmodules --get submodule.runtime/yaml-cpp.path # timeout=10
 > git submodule update --init --recursive runtime/yaml-cpp
 > git config --get submodule.lmnet/third_party/coco.url # timeout=10
 > git config -f .gitmodules --get submodule.lmnet/third_party/coco.path # timeout=10
 > git submodule update --init --recursive lmnet/third_party/coco
 > git config --get submodule.lmnet/third_party/tensorflow-on-arm.url # timeout=10
 > git config -f .gitmodules --get submodule.lmnet/third_party/tensorflow-on-arm.path # timeout=10
 > git submodule update --init --recursive lmnet/third_party/tensorflow-on-arm
[blueoil_dlk_test] $ /bin/sh -xe /tmp/jenkins2383038143764120182.sh
+ echo '# build docker container'
# build docker container
+ ./docker_build.sh
Sending build context to Docker daemon    201MB

Step 1/39 : FROM nvidia/cuda:8.0-cudnn6-devel
 ---> 7f6ed35bf9ae
Step 2/39 : MAINTAINER [email protected]
 ---> Using cache
 ---> d79f36403314
Step 3/39 : EXPOSE 6006
 ---> Using cache
 ---> 026ade8075b9
Step 4/39 : ENV LD_LIBRARY_PATH /usr/local/cuda/extras/CUPTI/lib64:${LD_LIBRARY_PATH}
 ---> Using cache
 ---> 34417f47c1f7
Step 5/39 : RUN echo "deb http://ftp.jaist.ac.jp/ubuntu/ xenial main restricted universe multiverse \ndeb-src http://ftp.jaist.ac.jp/ubuntu/ xenial main restricted universe multiverse \ndeb http://ftp.jaist.ac.jp/ubuntu/ xenial-updates main restricted universe multiverse \ndeb-src http://ftp.jaist.ac.jp/ubuntu/ xenial-updates main restricted universe multiverse \ndeb http://ftp.jaist.ac.jp/ubuntu/ xenial-backports main restricted universe multiverse \ndeb-src http://ftp.jaist.ac.jp/ubuntu/ xenial-backports main restricted universe multiverse \ndeb http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse \ndeb-src http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse" > /etc/apt/sources.list
 ---> Using cache
 ---> ffd8117c6224
Step 6/39 : RUN apt-get update && apt-get install -y     cmake     locales    python3     python3-dev     python3-pip     python3-wheel     &&     apt-get clean &&     rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 7d8c69c33294
Step 7/39 : RUN apt-get update && apt-get install -y     python3-pil     libjpeg8-dev     zlib1g-dev     python3-matplotlib     liblapack-dev     git     make     build-essential     libssl-dev     libbz2-dev     libreadline-dev     libsqlite3-dev     wget     curl     llvm     libncurses5-dev     libncursesw5-dev     xz-utils     tk-dev     &&     apt-get clean &&     rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> c53204d8fb64
Step 8/39 : RUN locale-gen en_US.UTF-8
 ---> Using cache
 ---> ba018fa51d1b
Step 9/39 : ENV LANG en_US.UTF-8
 ---> Using cache
 ---> 4002f242bfe7
Step 10/39 : ENV LANGUAGE en_US:en
 ---> Using cache
 ---> 2b1302d56243
Step 11/39 : ENV LC_ALL en_US.UTF-8
 ---> Using cache
 ---> 1db9d89e916e
Step 12/39 : ENV PYENV_ROOT /usr/local/pyenv
 ---> Using cache
 ---> 9859c8bccab3
Step 13/39 : RUN git clone https://github.com/yyuu/pyenv.git $PYENV_ROOT
 ---> Using cache
 ---> aa353138ea90
Step 14/39 : RUN git clone https://github.com/yyuu/pyenv-virtualenv.git $PYENV_ROOT/plugins/pyenv-virtualenv
 ---> Using cache
 ---> 9217a625f15e
Step 15/39 : ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
 ---> Using cache
 ---> 49b4a27863e8
Step 16/39 : RUN eval "$(pyenv init -)" &&     eval "$(pyenv virtualenv-init -)"
 ---> Using cache
 ---> ad627dd712fb
Step 17/39 : ARG python_version="3.6.3"
 ---> Using cache
 ---> d153ae748b5c
Step 18/39 : RUN pyenv install ${python_version} &&     pyenv virtualenv -p python${python_version%.*} ${python_version} python${python_version%.*} &&     pyenv global python${python_version%.*}
 ---> Using cache
 ---> 67f533e42477
Step 19/39 : RUN pip install -U pip setuptools
 ---> Using cache
 ---> 2bc9435116bb
Step 20/39 : RUN apt-get update && apt-get install -y g++-5-arm-linux-gnueabihf &&     ln -s /usr/bin/arm-linux-gnueabihf-g++-5 /usr/bin/arm-linux-gnueabihf-g++
 ---> Using cache
 ---> fc91bbdd3363
Step 21/39 : COPY lmnet /home/blueoil/lmnet
 ---> Using cache
 ---> 93dda42c9f46
Step 22/39 : WORKDIR /home/blueoil/lmnet
 ---> Using cache
 ---> ca8c1a0972c4
Step 23/39 : RUN pip install -r gpu.requirements.txt
 ---> Using cache
 ---> be6b8004aece
Step 24/39 : RUN pip uninstall -y prompt-toolkit
 ---> Using cache
 ---> 4f519572d242
Step 25/39 : COPY lmnet/third_party third_party
 ---> Using cache
 ---> c5b7c78ac57c
Step 26/39 : RUN cd third_party/coco/PythonAPI && pip install -e .
 ---> Using cache
 ---> e4dd38938c23
Step 27/39 : RUN apt-get update && apt-get install -y     x11-apps     imagemagick     &&     apt-get clean &&     rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 801f39c0eb8a
Step 28/39 : COPY dlk /home/blueoil/dlk
 ---> 2c2a6c2dcc5e
Step 29/39 : WORKDIR /home/blueoil/dlk
 ---> Running in 124b3fb5ea3a
Removing intermediate container 124b3fb5ea3a
 ---> 4665a95b51f0
Step 30/39 : RUN PYTHONPATH=python/dlk python setup.py install
 ---> Running in d80135272f79
running install
TVM support: OFF
ONNX support: OFF
running build
running build_ext
-- The CXX compiler identification is GNU 5.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/blueoil/dlk/build
Scanning dependencies of target packer
[ 50%] Building CXX object CMakeFiles/packer.dir/src/packer.cpp.o
[100%] Linking CXX shared module libpacker.so
[100%] Built target packer
running install_lib
running install_egg_info
�[91mwarning: install_lib: 'build/lib.linux-x86_64-3.6' does not exist -- no Python modules to install

�[0mrunning egg_info
creating dlk.egg-info
writing dlk.egg-info/PKG-INFO
writing dependency_links to dlk.egg-info/dependency_links.txt
writing requirements to dlk.egg-info/requires.txt
writing top-level names to dlk.egg-info/top_level.txt
writing manifest file 'dlk.egg-info/SOURCES.txt'
reading manifest file 'dlk.egg-info/SOURCES.txt'
writing manifest file 'dlk.egg-info/SOURCES.txt'
Copying dlk.egg-info to /usr/local/pyenv/versions/python3.6/lib/python3.6/site-packages/dlk-0.5.0-py3.6.egg-info
running install_scripts
running bdist_egg
installing library code to build/bdist.linux-x86_64/egg
running install_lib
�[91mwarning: install_lib: 'build/lib.linux-x86_64-3.6' does not exist -- no Python modules to install

�[0mcreating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying dlk.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying dlk.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying dlk.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying dlk.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying dlk.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
�[91mzip_safe flag not set; analyzing archive contents...
�[0mcreating dist
creating 'dist/dlk-0.5.0-py3.6-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing dlk-0.5.0-py3.6-linux-x86_64.egg
Copying dlk-0.5.0-py3.6-linux-x86_64.egg to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Adding dlk 0.5.0 to easy-install.pth file

Installed /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/dlk-0.5.0-py3.6-linux-x86_64.egg
Processing dependencies for dlk==0.5.0
Searching for tensorflow==1.4.1
Reading https://pypi.org/simple/tensorflow/
Downloading https://files.pythonhosted.org/packages/8c/b3/dba1a3e681a56d5ad63d3a1aa02b52294bdb3c6373245a67c1492a90cb62/tensorflow-1.4.1-cp36-cp36m-manylinux1_x86_64.whl#sha256=233d66bfad2287c61434384ec315bbf37b2f551beda2e0d37a8c24a0f2ed3896
Best match: tensorflow 1.4.1
Processing tensorflow-1.4.1-cp36-cp36m-manylinux1_x86_64.whl
Installing tensorflow-1.4.1-cp36-cp36m-manylinux1_x86_64.whl to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
writing requirements to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/tensorflow-1.4.1-py3.6-linux-x86_64.egg/EGG-INFO/requires.txt
Adding tensorflow 1.4.1 to easy-install.pth file
Installing saved_model_cli script to /usr/local/pyenv/versions/python3.6/bin
Installing tensorboard script to /usr/local/pyenv/versions/python3.6/bin

Installed /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/tensorflow-1.4.1-py3.6-linux-x86_64.egg
Searching for Pillow==3.1.2
Best match: Pillow 3.1.2
Adding Pillow 3.1.2 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for Jinja2==2.10
Best match: Jinja2 2.10
Adding Jinja2 2.10 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for PyYAML==3.12
Best match: PyYAML 3.12
Adding PyYAML 3.12 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for click==6.7
Best match: click 6.7
Adding click 6.7 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for numpy==1.14.0
Best match: numpy 1.14.0
Adding numpy 1.14.0 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for MarkupSafe==1.1.0
Best match: MarkupSafe 1.1.0
Adding MarkupSafe 1.1.0 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for wheel==0.32.2
Best match: wheel 0.32.2
Adding wheel 0.32.2 to easy-install.pth file
Installing wheel script to /usr/local/pyenv/versions/python3.6/bin

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for tensorflow-tensorboard==0.4.0
Best match: tensorflow-tensorboard 0.4.0
Adding tensorflow-tensorboard 0.4.0 to easy-install.pth file
Installing tensorboard script to /usr/local/pyenv/versions/python3.6/bin

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for six==1.11.0
Best match: six 1.11.0
Adding six 1.11.0 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for protobuf==3.6.1
Best match: protobuf 3.6.1
Adding protobuf 3.6.1 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for enum34==1.1.6
Best match: enum34 1.1.6
Adding enum34 1.1.6 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for html5lib==0.9999999
Best match: html5lib 0.9999999
Adding html5lib 0.9999999 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for Markdown==3.0.1
Best match: Markdown 3.0.1
Adding Markdown 3.0.1 to easy-install.pth file
Installing markdown_py script to /usr/local/pyenv/versions/python3.6/bin

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for bleach==1.5.0
Best match: bleach 1.5.0
Adding bleach 1.5.0 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for Werkzeug==0.14.1
Best match: Werkzeug 0.14.1
Adding Werkzeug 0.14.1 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for setuptools==40.6.2
Best match: setuptools 40.6.2
Adding setuptools 40.6.2 to easy-install.pth file
Installing easy_install script to /usr/local/pyenv/versions/python3.6/bin
Installing easy_install-3.6 script to /usr/local/pyenv/versions/python3.6/bin

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Finished processing dependencies for dlk==0.5.0
Removing intermediate container d80135272f79
 ---> 2981545be6d4
Step 31/39 : COPY blueoil /home/blueoil/blueoil
 ---> 454755374e00
Step 32/39 : COPY setup.py /home/blueoil/setup.py
 ---> 3f28230d8685
Step 33/39 : COPY setup.cfg /home/blueoil/setup.cfg
 ---> 3884ebf92430
Step 34/39 : WORKDIR /home/blueoil
 ---> Running in 7f1a0512a611
Removing intermediate container 7f1a0512a611
 ---> e148998a474c
Step 35/39 : RUN python setup.py install
 ---> Running in 7fa54cc86b8a
running install
running bdist_egg
running egg_info
creating blueoil.egg-info
writing blueoil.egg-info/PKG-INFO
writing dependency_links to blueoil.egg-info/dependency_links.txt
writing requirements to blueoil.egg-info/requires.txt
writing top-level names to blueoil.egg-info/top_level.txt
writing manifest file 'blueoil.egg-info/SOURCES.txt'
reading manifest file 'blueoil.egg-info/SOURCES.txt'
writing manifest file 'blueoil.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/blueoil
copying blueoil/__init__.py -> build/lib/blueoil
copying blueoil/blueoil_train.py -> build/lib/blueoil
copying blueoil/blueoil_convert.py -> build/lib/blueoil
copying blueoil/generate_lmnet_config.py -> build/lib/blueoil
copying blueoil/blueoil_init.py -> build/lib/blueoil
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/blueoil
copying build/lib/blueoil/__init__.py -> build/bdist.linux-x86_64/egg/blueoil
copying build/lib/blueoil/blueoil_train.py -> build/bdist.linux-x86_64/egg/blueoil
copying build/lib/blueoil/blueoil_convert.py -> build/bdist.linux-x86_64/egg/blueoil
copying build/lib/blueoil/generate_lmnet_config.py -> build/bdist.linux-x86_64/egg/blueoil
copying build/lib/blueoil/blueoil_init.py -> build/bdist.linux-x86_64/egg/blueoil
byte-compiling build/bdist.linux-x86_64/egg/blueoil/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/blueoil/blueoil_train.py to blueoil_train.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/blueoil/blueoil_convert.py to blueoil_convert.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/blueoil/generate_lmnet_config.py to generate_lmnet_config.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/blueoil/blueoil_init.py to blueoil_init.cpython-36.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying blueoil.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying blueoil.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying blueoil.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying blueoil.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
copying blueoil.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying blueoil.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
creating dist
creating 'dist/blueoil-0.1-py3.6.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing blueoil-0.1-py3.6.egg
creating /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/blueoil-0.1-py3.6.egg
Extracting blueoil-0.1-py3.6.egg to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Adding blueoil 0.1 to easy-install.pth file

Installed /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/blueoil-0.1-py3.6.egg
Processing dependencies for blueoil==0.1
Searching for whaaaaat
Reading https://pypi.org/simple/whaaaaat/
Downloading https://files.pythonhosted.org/packages/85/06/299520d293ec7a654f3b71453fee348011e6366f80cb6140181e438f6f9c/whaaaaat-0.5.2.tar.gz#sha256=cda3c149dc3e6dacdbc1f6d445ee8005c9fc540aa7d8b00c1553a6f7e37e917e
Best match: whaaaaat 0.5.2
Processing whaaaaat-0.5.2.tar.gz
Writing /tmp/easy_install-546e5ysa/whaaaaat-0.5.2/setup.cfg
Running whaaaaat-0.5.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-546e5ysa/whaaaaat-0.5.2/egg-dist-tmp-bhhy5utw
�[91mzip_safe flag not set; analyzing archive contents...
�[0m�[91mwhaaaaat.__pycache__.__init__.cpython-36: module references __file__
�[0mcreating /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/whaaaaat-0.5.2-py3.6.egg
Extracting whaaaaat-0.5.2-py3.6.egg to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Adding whaaaaat 0.5.2 to easy-install.pth file
�[91mNot found: prompt_toolkit>=1.0.14
Not found: Pygments>=2.2.0
Not found: regex>=2016.11.21
�[0m
Installed /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/whaaaaat-0.5.2-py3.6.egg
Searching for prompt_toolkit==1.0.15
Reading https://pypi.org/simple/prompt_toolkit/
Downloading https://files.pythonhosted.org/packages/04/d1/c6616dd03701e7e2073f06d5c3b41b012256e42b72561f16a7bd86dd7b43/prompt_toolkit-1.0.15-py3-none-any.whl#sha256=1df952620eccb399c53ebb359cc7d9a8d3a9538cb34c5a1344bdbeb29fbcc381
Best match: prompt-toolkit 1.0.15
Processing prompt_toolkit-1.0.15-py3-none-any.whl
Installing prompt_toolkit-1.0.15-py3-none-any.whl to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
writing requirements to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/prompt_toolkit-1.0.15-py3.6.egg/EGG-INFO/requires.txt
Adding prompt-toolkit 1.0.15 to easy-install.pth file

Installed /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/prompt_toolkit-1.0.15-py3.6.egg
Searching for regex>=2016.11.21
Reading https://pypi.org/simple/regex/
Downloading https://files.pythonhosted.org/packages/16/07/ee3e02770ed456a088b90da7c9b1e9aa227e3c956d37b845cef2aab93764/regex-2018.11.22.tar.gz#sha256=79a6a60ed1ee3b12eb0e828c01d75e3b743af6616d69add6c2fde1d425a4ba3f
Best match: regex 2018.11.22
Processing regex-2018.11.22.tar.gz
Writing /tmp/easy_install-klkyfy_y/regex-2018.11.22/setup.cfg
Running regex-2018.11.22/setup.py -q bdist_egg --dist-dir /tmp/easy_install-klkyfy_y/regex-2018.11.22/egg-dist-tmp-e38il_sm
�[91mregex_3/_regex.c: In function ‘fuzzy_match_group_fld’:
�[0m�[91mregex_3/_regex.c:11062:10: warning: ‘data.new_text_pos’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (!record_fuzzy(safe_state, data.fuzzy_type, data.new_text_pos -
          ^
�[0m�[91mregex_3/_regex.c: In function ‘fuzzy_match_string_fld’:
regex_3/_regex.c:10852:10: warning: ‘data.new_text_pos’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (!record_fuzzy(safe_state, data.fuzzy_type, data.new_text_pos -
          ^
�[0m�[91mregex_3/_regex.c: In function ‘basic_match’:
regex_3/_regex.c:11140:10: warning: ‘data.new_text_pos’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (!record_fuzzy(safe_state, data.fuzzy_type, data.new_text_pos -
          ^
regex_3/_regex.c:11092:18: note: ‘data.new_text_pos’ was declared here
     RE_FuzzyData data;
                  ^
regex_3/_regex.c:10933:10: warning: ‘data.new_text_pos’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (!record_fuzzy(safe_state, data.fuzzy_type, data.new_text_pos -
          ^
regex_3/_regex.c:10880:18: note: ‘data.new_text_pos’ was declared here
     RE_FuzzyData data;
                  ^
�[0m�[91mzip_safe flag not set; analyzing archive contents...
�[0m�[91m__pycache__._regex.cpython-36: module references __file__
�[0mcreating /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/regex-2018.11.22-py3.6-linux-x86_64.egg
Extracting regex-2018.11.22-py3.6-linux-x86_64.egg to /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Adding regex 2018.11.22 to easy-install.pth file

Installed /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/regex-2018.11.22-py3.6-linux-x86_64.egg
Searching for PyYAML==3.12
Best match: PyYAML 3.12
Adding PyYAML 3.12 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for Jinja2==2.10
Best match: Jinja2 2.10
Adding Jinja2 2.10 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for MarkupSafe==1.1.0
Best match: MarkupSafe 1.1.0
Adding MarkupSafe 1.1.0 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for Pygments==2.2.0
Best match: Pygments 2.2.0
Adding Pygments 2.2.0 to easy-install.pth file
Installing pygmentize script to /usr/local/pyenv/versions/python3.6/bin

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for wcwidth==0.1.7
Best match: wcwidth 0.1.7
Adding wcwidth 0.1.7 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Searching for six==1.11.0
Best match: six 1.11.0
Adding six 1.11.0 to easy-install.pth file

Using /usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages
Finished processing dependencies for blueoil==0.1
Removing intermediate container 7fa54cc86b8a
 ---> dede6ff28664
Step 36/39 : RUN chmod 777 /home/blueoil
 ---> Running in 502e9e0c4ede
Removing intermediate container 502e9e0c4ede
 ---> e3ed79240546
Step 37/39 : RUN chmod 777 /home/blueoil/dlk
 ---> Running in 4e0fc3d6cba2
Removing intermediate container 4e0fc3d6cba2
 ---> 40674989542f
Step 38/39 : COPY output_template /home/blueoil/output_template
 ---> 4c3cd9a7129b
Step 39/39 : RUN touch lmnet/lmnet/__init__.py
 ---> Running in bf2a52cc794e
Removing intermediate container bf2a52cc794e
 ---> d6dda24fe03b
Successfully built d6dda24fe03b
Successfully tagged jenkins_blueoil:local_build
+ echo '# run test'
# run test
+ DOCKER_OPTION='-e PYTHONPATH=python/dlk -v /root/.ssh:/root/.ssh --net=host'
++ id -un
+ docker run --rm -t -e PYTHONPATH=python/dlk -v /root/.ssh:/root/.ssh --net=host jenkins_blueoil:local_build /bin/bash -c 'apt-get update && apt-get install -y iputils-ping && cd dlk && mv /usr/bin/arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++.hoge && python setup.py test'

0% [Working]
            
Get:1 http://ftp.jaist.ac.jp/ubuntu xenial InRelease [247 kB]

0% [1 InRelease 4,122 B/247 kB 2%] [Connecting to security.ubuntu.com]
0% [Waiting for headers] [Connecting to security.ubuntu.com (91.189.88.149)]
0% [1 InRelease gpgv 247 kB] [Connecting to ftp.jaist.ac.jp (150.65.7.130)] [Co
                                                                               
Get:2 http://ftp.jaist.ac.jp/ubuntu xenial-updates InRelease [109 kB]

0% [1 InRelease gpgv 247 kB] [2 InRelease 1,226 B/109 kB 1%] [Connecting to sec
0% [1 InRelease gpgv 247 kB] [Waiting for headers] [Connecting to security.ubun
                                                                               
Get:3 http://ftp.jaist.ac.jp/ubuntu xenial-backports InRelease [107 kB]

0% [1 InRelease gpgv 247 kB] [3 InRelease 1,226 B/107 kB 1%] [Connecting to sec
0% [1 InRelease gpgv 247 kB] [Connecting to security.ubuntu.com (91.189.88.149)
                                                                               
0% [Connecting to security.ubuntu.com (91.189.88.149)]
0% [2 InRelease gpgv 109 kB] [Connecting to security.ubuntu.com (91.189.88.149)
                                                                               
Get:4 http://ftp.jaist.ac.jp/ubuntu xenial/main Sources [1,103 kB]

0% [2 InRelease gpgv 109 kB] [4 Sources 5,568 B/1,103 kB 1%] [Connecting to sec
0% [4 Sources 355 kB/1,103 kB 32%] [Connecting to security.ubuntu.com (91.189.8
0% [3 InRelease gpgv 107 kB] [4 Sources 357 kB/1,103 kB 32%] [Connecting to sec
                                                                               
0% [3 InRelease gpgv 107 kB] [Waiting for headers]
                                                  
0% [Waiting for headers]
0% [4 Sources store 0 B] [Waiting for headers]
                                              
Get:5 http://ftp.jaist.ac.jp/ubuntu xenial/restricted Sources [5,179 B]

0% [4 Sources store 0 B] [5 Sources 1,229 B/5,179 B 24%] [Waiting for headers]
                                                                              
0% [4 Sources store 0 B] [Waiting for headers]
                                              
Get:6 http://ftp.jaist.ac.jp/ubuntu xenial/universe Sources [9,802 kB]

0% [4 Sources store 0 B] [6 Sources 1,224 B/9,802 kB 0%] [Waiting for headers]
                                                                              
0% [6 Sources 434 kB/9,802 kB 4%] [Waiting for headers]
0% [5 Sources store 0 B] [6 Sources 434 kB/9,802 kB 4%] [Waiting for headers]
                                                                             
0% [6 Sources 439 kB/9,802 kB 4%] [Waiting for headers]
                                                       
Ign:7 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64  InRelease

0% [6 Sources 1,031 kB/9,802 kB 11%] [Waiting for headers]
                                                          
Ign:8 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64  InRelease

0% [6 Sources 2,034 kB/9,802 kB 21%] [Waiting for headers]
                                                          
Get:9 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64  Release [564 B]

0% [6 Sources 2,094 kB/9,802 kB 21%] [Waiting for headers] [9 Release 0 B/564 B
                                                                               
0% [6 Sources 2,094 kB/9,802 kB 21%] [Waiting for headers]
                                                          
Get:10 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64  Release [564 B]

0% [6 Sources 2,145 kB/9,802 kB 22%] [Waiting for headers] [10 Release 564 B/56
                                                                               
0% [6 Sources 2,147 kB/9,802 kB 22%] [Waiting for headers]
                                                          
Get:11 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64  Release.gpg [801 B]

0% [6 Sources 2,207 kB/9,802 kB 23%] [Waiting for headers] [11 Release.gpg 801 
                                                                               
0% [6 Sources 2,209 kB/9,802 kB 23%] [Waiting for headers]
0% [11 Release.gpg gpgv 564 B] [6 Sources 2,212 kB/9,802 kB 23%] [Waiting for h
                                                                               
Get:12 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64  Release.gpg [801 B]

0% [11 Release.gpg gpgv 564 B] [6 Sources 2,266 kB/9,802 kB 23%] [Waiting for h
0% [11 Release.gpg gpgv 564 B] [6 Sources 2,269 kB/9,802 kB 23%] [Waiting for h
                                                                               
0% [6 Sources 2,892 kB/9,802 kB 30%] [Waiting for headers]
0% [12 Release.gpg gpgv 564 B] [6 Sources 2,895 kB/9,802 kB 30%] [Waiting for h
                                                                               
Get:13 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64  Packages [158 kB]

0% [12 Release.gpg gpgv 564 B] [6 Sources 2,955 kB/9,802 kB 30%] [Waiting for h
0% [12 Release.gpg gpgv 564 B] [6 Sources 3,018 kB/9,802 kB 31%] [Waiting for h
0% [13 Packages store 0 B] [12 Release.gpg gpgv 564 B] [6 Sources 3,020 kB/9,80
0% [12 Release.gpg gpgv 564 B] [6 Sources 3,189 kB/9,802 kB 33%] [Waiting for h
                                                                               
0% [6 Sources 3,257 kB/9,802 kB 33%] [Waiting for headers]
                                                          
Get:14 https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64  Packages [34.6 kB]

0% [6 Sources 3,304 kB/9,802 kB 34%] [Waiting for headers] [14 Packages 0 B/34.
                                                                               
0% [6 Sources 3,312 kB/9,802 kB 34%] [Waiting for headers]
0% [14 Packages store 0 B] [6 Sources 3,312 kB/9,802 kB 34%] [Waiting for heade
                                                                               
0% [6 Sources 3,350 kB/9,802 kB 34%] [Waiting for headers]
                                                          
Get:15 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]

0% [6 Sources 4,841 kB/9,802 kB 49%] [15 InRelease 2,585 B/107 kB 2%]
0% [6 Sources 8,796 kB/9,802 kB 90%] [15 InRelease 43.1 kB/107 kB 40%]
                                                                      
0% [15 InRelease 63.4 kB/107 kB 59%]
0% [6 Sources store 0 B] [Waiting for headers] [15 InRelease 63.4 kB/107 kB 59%
                                                                               
Get:16 http://ftp.jaist.ac.jp/ubuntu xenial/multiverse Sources [215 kB]

0% [6 Sources store 0 B] [16 Sources 1,226 B/215 kB 1%] [15 InRelease 63.4 kB/1
                                                                               
0% [6 Sources store 0 B] [15 InRelease 69.2 kB/107 kB 65%]
                                                          
Get:17 http://ftp.jaist.ac.jp/ubuntu xenial/main amd64 Packages [1,558 kB]

0% [6 Sources store 0 B] [17 Packages 1,224 B/1,558 kB 0%] [15 InRelease 72.1 k
                                                                               
0% [6 Sources store 0 B] [17 Packages 1,303 kB/1,558 kB 84%]
0% [6 Sources store 0 B] [15 InRelease gpgv 107 kB] [17 Packages 1,306 kB/1,558
                                                                               
0% [6 Sources store 0 B] [15 InRelease gpgv 107 kB] [Waiting for headers]
                                                                         
Get:18 http://ftp.jaist.ac.jp/ubuntu xenial/restricted amd64 Packages [14.1 kB]

0% [6 Sources store 0 B] [15 InRelease gpgv 107 kB] [18 Packages 1,228 B/14.1 k
                                                                               
0% [6 Sources store 0 B] [15 InRelease gpgv 107 kB] [Waiting for headers]
                                                                         
Get:19 http://ftp.jaist.ac.jp/ubuntu xenial/universe amd64 Packages [9,827 kB]

0% [6 Sources store 0 B] [15 InRelease gpgv 107 kB] [19 Packages 1,224 B/9,827 
                                                                               
51% [6 Sources store 0 B] [19 Packages 421 kB/9,827 kB 4%]
59% [19 Packages 2,945 kB/9,827 kB 30%] [Waiting for headers]
59% [16 Sources store 0 B] [19 Packages 2,945 kB/9,827 kB 30%] [Waiting for hea
                                                                               
59% [19 Packages 3,067 kB/9,827 kB 31%] [Waiting for headers]
59% [17 Packages store 0 B] [19 Packages 3,067 kB/9,827 kB 31%] [Waiting for he
                                                                               
Get:20 http://security.ubuntu.com/ubuntu xenial-security/main Sources [172 kB]

60% [17 Packages store 0 B] [19 Packages 3,365 kB/9,827 kB 34%] [20 Sources 2,6
                                                                               
63% [19 Packages 4,095 kB/9,827 kB 42%] [20 Sources 43.2 kB/172 kB 25%]
63% [18 Packages store 0 B] [19 Packages 4,095 kB/9,827 kB 42%] [20 Sources 43.
                                                                               
63% [19 Packages 4,112 kB/9,827 kB 42%] [20 Sources 43.2 kB/172 kB 25%]
                                                                       
73% [19 Packages 7,486 kB/9,827 kB 76%]
73% [20 Sources store 0 B] [19 Packages 7,487 kB/9,827 kB 76%]
                                                              
74% [19 Packages 7,656 kB/9,827 kB 78%] [Waiting for headers]
                                                             
Get:21 http://security.ubuntu.com/ubuntu xenial-security/restricted Sources [2,243 B]

80% [19 Packages 9,781 kB/9,827 kB 100%] [21 Sources 2,243 B/2,243 B 100%]
                                                                          
80% [19 Packages 9,784 kB/9,827 kB 100%]
                                        
Get:22 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [106 kB]

80% [19 Packages 9,784 kB/9,827 kB 100%] [22 Sources 239 B/106 kB 0%]
80% [21 Sources store 0 B] [19 Packages 9,784 kB/9,827 kB 100%] [22 Sources 239
                                                                               
81% [19 Packages 9,784 kB/9,827 kB 100%] [22 Sources 239 B/106 kB 0%]
                                                                     
81% [22 Sources 11.8 kB/106 kB 11%]
81% [19 Packages store 0 B] [Waiting for headers] [22 Sources 11.8 kB/106 kB 11
                                                                               
Get:23 http://ftp.jaist.ac.jp/ubuntu xenial/multiverse amd64 Packages [176 kB]

81% [19 Packages store 0 B] [23 Packages 1,226 B/176 kB 1%] [22 Sources 26.3 kB
                                                                               
81% [19 Packages store 0 B] [22 Sources 52.4 kB/106 kB 49%]
                                                           
Get:24 http://ftp.jaist.ac.jp/ubuntu xenial-updates/main Sources [412 kB]

81% [19 Packages store 0 B] [24 Sources 1,226 B/412 kB 0%] [22 Sources 68.3 kB/
82% [19 Packages store 0 B] [24 Sources 266 kB/412 kB 65%] [Waiting for headers
                                                                               
Get:25 http://security.ubuntu.com/ubuntu xenial-security/multiverse Sources [2,507 B]

82% [19 Packages store 0 B] [24 Sources 269 kB/412 kB 65%] [Waiting for headers
                                                                               
Get:26 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [747 kB]

82% [19 Packages store 0 B] [24 Sources 288 kB/412 kB 70%] [26 Packages 1,364 B
                                                                               
83% [19 Packages store 0 B] [26 Packages 20.2 kB/747 kB 3%]
                                                           
Get:27 http://ftp.jaist.ac.jp/ubuntu xenial-updates/restricted Sources [2,684 B]

83% [19 Packages store 0 B] [27 Sources 1,230 B/2,684 B 46%] [26 Packages 53.5 
                                                                               
83% [19 Packages store 0 B] [26 Packages 53.5 kB/747 kB 7%]
                                                           
Get:28 http://ftp.jaist.ac.jp/ubuntu xenial-updates/universe Sources [292 kB]

83% [19 Packages store 0 B] [28 Sources 1,226 B/292 kB 0%] [26 Packages 76.2 kB
84% [19 Packages store 0 B] [Waiting for headers] [26 Packages 76.2 kB/747 kB 1
                                                                               
Get:29 http://ftp.jaist.ac.jp/ubuntu xenial-updates/multiverse Sources [9,403 B]

84% [19 Packages store 0 B] [29 Sources 1,229 B/9,403 B 13%] [26 Packages 76.2 
                                                                               
84% [19 Packages store 0 B] [26 Packages 76.2 kB/747 kB 10%]
                                                            
Get:30 http://ftp.jaist.ac.jp/ubuntu xenial-updates/main amd64 Packages [1,143 kB]

84% [19 Packages store 0 B] [30 Packages 1,224 B/1,143 kB 0%] [26 Packages 76.2
                                                                               
86% [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 kB/747 kB 23%]
86% [23 Packages store 0 B] [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 
                                                                               
86% [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 kB/747 kB 23%]
86% [22 Sources store 0 B] [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 k
                                                                               
87% [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 kB/747 kB 23%]
87% [25 Sources store 0 B] [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 k
                                                                               
87% [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 kB/747 kB 23%]
87% [24 Sources store 0 B] [30 Packages 527 kB/1,143 kB 46%] [26 Packages 175 k
                                                                               
87% [30 Packages 528 kB/1,143 kB 46%] [26 Packages 175 kB/747 kB 23%]
87% [27 Sources store 0 B] [30 Packages 528 kB/1,143 kB 46%] [26 Packages 175 k
                                                                               
88% [30 Packages 528 kB/1,143 kB 46%] [26 Packages 175 kB/747 kB 23%]
88% [28 Sources store 0 B] [30 Packages 528 kB/1,143 kB 46%] [26 Packages 175 k
                                                                               
88% [30 Packages 531 kB/1,143 kB 46%] [26 Packages 188 kB/747 kB 25%]
88% [29 Sources store 0 B] [30 Packages 531 kB/1,143 kB 46%] [26 Packages 188 k
                                                                               
88% [30 Packages 531 kB/1,143 kB 46%] [26 Packages 195 kB/747 kB 26%]
                                                                     
92% [Waiting for headers] [26 Packages 731 kB/747 kB 98%]
92% [30 Packages store 0 B] [Waiting for headers] [26 Packages 731 kB/747 kB 98
                                                                               
92% [30 Packages store 0 B] [Waiting for headers] [Waiting for headers]
                                                                       
Get:31 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.7 kB]

92% [30 Packages store 0 B] [Waiting for headers] [31 Packages 5 B/12.7 kB 0%]
                                                                              
Get:32 http://ftp.jaist.ac.jp/ubuntu xenial-updates/restricted amd64 Packages [13.1 kB]

92% [30 Packages store 0 B] [32 Packages 2,676 B/13.1 kB 20%] [31 Packages 5 B/
                                                                               
92% [30 Packages store 0 B] [31 Packages 1,453 B/12.7 kB 11%]
92% [30 Packages store 0 B] [Waiting for headers] [Waiting for headers]
                                                                       
Get:33 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [508 kB]

92% [30 Packages store 0 B] [Waiting for headers] [33 Packages 153 B/508 kB 0%]
                                                                               
Get:34 http://ftp.jaist.ac.jp/ubuntu xenial-updates/universe amd64 Packages [909 kB]

92% [30 Packages store 0 B] [34 Packages 1,226 B/909 kB 0%] [33 Packages 5,945 
                                                                               
94% [34 Packages 475 kB/909 kB 52%] [33 Packages 91.4 kB/508 kB 18%]
94% [26 Packages store 0 B] [34 Packages 475 kB/909 kB 52%] [33 Packages 91.4 k
                                                                               
96% [34 Packages 875 kB/909 kB 96%] [33 Packages 188 kB/508 kB 37%]
96% [32 Packages store 0 B] [34 Packages 875 kB/909 kB 96%] [33 Packages 188 kB
                                                                               
96% [34 Packages 886 kB/909 kB 97%] [33 Packages 191 kB/508 kB 38%]
96% [31 Packages store 0 B] [34 Packages 886 kB/909 kB 97%] [33 Packages 191 kB
                                                                               
96% [34 Packages 900 kB/909 kB 99%] [33 Packages 194 kB/508 kB 38%]
                                                                   
96% [Waiting for headers] [33 Packages 201 kB/508 kB 40%]
96% [34 Packages store 0 B] [Waiting for headers] [33 Packages 201 kB/508 kB 40
                                                                               
Get:35 http://ftp.jaist.ac.jp/ubuntu xenial-updates/multiverse amd64 Packages [19.0 kB]

96% [34 Packages store 0 B] [35 Packages 2,676 B/19.0 kB 14%] [33 Packages 238 
                                                                               
96% [34 Packages store 0 B] [33 Packages 242 kB/508 kB 48%]
                                                           
Get:36 http://ftp.jaist.ac.jp/ubuntu xenial-backports/main Sources [5,086 B]

96% [34 Packages store 0 B] [36 Sources 1,229 B/5,086 B 24%] [33 Packages 243 k
                                                                               
96% [34 Packages store 0 B] [33 Packages 243 kB/508 kB 48%]
                                                           
97% [Waiting for headers] [33 Packages 319 kB/508 kB 63%]
97% [35 Packages store 0 B] [Waiting for headers] [33 Packages 319 kB/508 kB 63
                                                                               
97% [Waiting for headers] [33 Packages 326 kB/508 kB 64%]
97% [36 Sources store 0 B] [Waiting for headers] [33 Packages 326 kB/508 kB 64%
                                                                               
98% [Waiting for headers] [33 Packages 327 kB/508 kB 64%]
                                                         
Get:37 http://ftp.jaist.ac.jp/ubuntu xenial-backports/universe Sources [7,237 B]

98% [37 Sources 2,677 B/7,237 B 37%] [33 Packages 348 kB/508 kB 68%]
                                                                    
98% [33 Packages 352 kB/508 kB 69%]
98% [37 Sources store 0 B] [Waiting for headers] [33 Packages 352 kB/508 kB 69%
                                                                               
98% [Waiting for headers] [33 Packages 353 kB/508 kB 70%]
                                                         
Get:38 http://ftp.jaist.ac.jp/ubuntu xenial-backports/main amd64 Packages [7,959 B]

98% [38 Packages 2,677 B/7,959 B 34%] [33 Packages 408 kB/508 kB 80%]
                                                                     
98% [33 Packages 411 kB/508 kB 81%]
98% [38 Packages store 0 B] [Waiting for headers] [33 Packages 411 kB/508 kB 81
                                                                               
99% [Waiting for headers] [33 Packages 417 kB/508 kB 82%]
                                                         
Get:39 http://ftp.jaist.ac.jp/ubuntu xenial-backports/universe amd64 Packages [8,532 B]

99% [39 Packages 2,677 B/8,532 B 31%] [33 Packages 464 kB/508 kB 91%]
                                                                     
99% [33 Packages 464 kB/508 kB 91%]
99% [39 Packages store 0 B] [33 Packages 464 kB/508 kB 91%]
                                                           
99% [33 Packages 468 kB/508 kB 92%]
                                   
99% [Waiting for headers]
                         
Get:40 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [4,026 B]

99% [40 Packages 514 B/4,026 B 13%]
99% [33 Packages store 0 B] [40 Packages 514 B/4,026 B 13%]
                                                           
99% [33 Packages store 0 B]
                           
100% [Working]
100% [40 Packages store 0 B]
                            
100% [Working]
              
Fetched 27.8 MB in 3s (7,008 kB/s)

Reading package lists... 0%

Reading package lists... 0%

Reading package lists... 1%

Reading package lists... 10%

Reading package lists... 10%

Reading package lists... 10%

Reading package lists... 10%

Reading package lists... 71%

Reading package lists... 71%

Reading package lists... 72%

Reading package lists... 72%

Reading package lists... 80%

Reading package lists... 80%

Reading package lists... 80%

Reading package lists... 80%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 93%

Reading package lists... 93%

Reading package lists... 93%

Reading package lists... 93%

Reading package lists... 97%

Reading package lists... 97%

Reading package lists... 97%

Reading package lists... 97%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... Done


Reading package lists... 0%

Reading package lists... 0%

Reading package lists... 1%

Reading package lists... 10%

Reading package lists... 10%

Reading package lists... 10%

Reading package lists... 10%

Reading package lists... 71%

Reading package lists... 71%

Reading package lists... 72%

Reading package lists... 72%

Reading package lists... 80%

Reading package lists... 80%

Reading package lists... 80%

Reading package lists... 80%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 87%

Reading package lists... 93%

Reading package lists... 93%

Reading package lists... 93%

Reading package lists... 93%

Reading package lists... 97%

Reading package lists... 97%

Reading package lists... 97%

Reading package lists... 97%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... Done


Building dependency tree... 0%

Building dependency tree... 0%

Building dependency tree... 50%

Building dependency tree... 50%

Building dependency tree       


Reading state information... 0%

Reading state information... 0%

Reading state information... Done

The following additional packages will be installed:
  libgnutls-openssl27
The following NEW packages will be installed:
  iputils-ping libgnutls-openssl27
0 upgraded, 2 newly installed, 0 to remove and 22 not upgraded.
Need to get 74.7 kB of archives.
After this operation, 265 kB of additional disk space will be used.

0% [Working]
            
Get:1 http://ftp.jaist.ac.jp/ubuntu xenial-updates/main amd64 libgnutls-openssl27 amd64 3.4.10-4ubuntu1.4 [22.0 kB]

4% [1 libgnutls-openssl27 4,080 B/22.0 kB 19%]
                                              
34% [Waiting for headers]
                         
Get:2 http://ftp.jaist.ac.jp/ubuntu xenial/main amd64 iputils-ping amd64 3:20121221-5ubuntu2 [52.7 kB]

35% [2 iputils-ping 1,184 B/52.7 kB 2%]
                                       
100% [Working]
              
Fetched 74.7 kB in 0s (1,188 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libgnutls-openssl27:amd64.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 33020 files and directories currently installed.)
Preparing to unpack .../libgnutls-openssl27_3.4.10-4ubuntu1.4_amd64.deb ...
Unpacking libgnutls-openssl27:amd64 (3.4.10-4ubuntu1.4) ...
Selecting previously unselected package iputils-ping.
Preparing to unpack .../iputils-ping_3%3a20121221-5ubuntu2_amd64.deb ...
Unpacking iputils-ping (3:20121221-5ubuntu2) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libgnutls-openssl27:amd64 (3.4.10-4ubuntu1.4) ...
Setting up iputils-ping (3:20121221-5ubuntu2) ...
Setcap is not installed, falling back to setuid
Processing triggers for libc-bin (2.23-0ubuntu10) ...
running test
-- Configuring done
-- Generating done
-- Build files have been written to: /home/blueoil/dlk/build
[100%] Built target packer
Searching for nose2
Reading https://pypi.org/simple/nose2/
Downloading https://files.pythonhosted.org/packages/1b/c5/d5fcd60f5bf8af1e320fde832d7965933581a9b21b0d1b29bbe2208f4403/nose2-0.8.0.tar.gz#sha256=9052f2b46807b63d9bdf68e0768da1f8386368889b50043fd5d0889c470258f3
Best match: nose2 0.8.0
Processing nose2-0.8.0.tar.gz
Writing /tmp/easy_install-jw98on04/nose2-0.8.0/setup.cfg
Running nose2-0.8.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-jw98on04/nose2-0.8.0/egg-dist-tmp-qqmd4d6v
warning: no previously-included files matching '__pycache__' found anywhere in distribution
warning: no previously-included files matching '*~' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
zip_safe flag not set; analyzing archive contents...
nose2.__pycache__.util.cpython-36: module references __path__
nose2.plugins.loader.__pycache__.discovery.cpython-36: module references __file__
nose2.plugins.loader.__pycache__.discovery.cpython-36: module references __path__
nose2.tests.__pycache__._common.cpython-36: module references __file__
nose2.tests.functional.__pycache__.test_layers_hooks.cpython-36: module references __file__
creating /home/blueoil/dlk/.eggs/nose2-0.8.0-py3.6.egg
Extracting nose2-0.8.0-py3.6.egg to /home/blueoil/dlk/.eggs

Installed /home/blueoil/dlk/.eggs/nose2-0.8.0-py3.6.egg
Searching for coverage>=4.4.1
Reading https://pypi.org/simple/coverage/
Downloading https://files.pythonhosted.org/packages/cf/7e/8d42a2292e0a7c713db1004746510c2b2dbf149c8dd8e0a2bb1656167eaa/coverage-5.0a4-cp36-cp36m-manylinux1_x86_64.whl#sha256=02abbbebc6e9d5abe13cd28b5e963dedb6ffb51c146c916d17b18f141acd9947
Best match: coverage 5.0a4
Processing coverage-5.0a4-cp36-cp36m-manylinux1_x86_64.whl
Installing coverage-5.0a4-cp36-cp36m-manylinux1_x86_64.whl to /home/blueoil/dlk/.eggs

Installed /home/blueoil/dlk/.eggs/coverage-5.0a4-py3.6-linux-x86_64.egg
running egg_info
writing dlk.egg-info/PKG-INFO
writing dependency_links to dlk.egg-info/dependency_links.txt
writing requirements to dlk.egg-info/requires.txt
writing top-level names to dlk.egg-info/top_level.txt
reading manifest file 'dlk.egg-info/SOURCES.txt'
writing manifest file 'dlk.egg-info/SOURCES.txt'
running build_ext
-- Configuring done
-- Generating done
-- Build files have been written to: /home/blueoil/dlk/build
[100%] Built target packer
/usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/tensorflow-1.4.1-py3.6-linux-x86_64.egg/tensorflow/python/framework/ops.py:766: DeprecationWarning: builtin type EagerTensor has no __module__ attribute
  EagerTensor = c_api.TFE_Py_InitEagerTensor(_EagerTensorBase)
/usr/local/pyenv/versions/python3.6/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6
  return f(*args, **kwds)
/usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/tensorflow-1.4.1-py3.6-linux-x86_64.egg/tensorflow/python/util/tf_inspect.py:45: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() or inspect.getfullargspec()
  if d.decorator_argspec is not None), _inspect.getargspec(target))
/usr/local/pyenv/versions/python3.6/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__
  return f(*args, **kwds)
/usr/local/pyenv/versions/python3.6/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__
  return f(*args, **kwds)
Waiting for device 192.168.1.5: try 1 of 15
---begining of stderr---
512+0 records in
512+0 records out
262144 bytes (262 kB, 256 KiB) copied, 0.0798341 s, 3.3 MB/s

---end of stderr---
---begining of stderr---
Connection to 192.168.1.5 closed by remote host.

---end of stderr---
Waiting for device 192.168.1.5: try 1 of 15
---begining of stdout---
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.

--- 192.168.1.5 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 3999ms


---end of stdout---

Waiting for device 192.168.1.5: try 2 of 15
fatal: Not a git repository (or any of the parent directories): .git
No arm compiler nor library. Quit testing.
sfatal: Not a git repository (or any of the parent directories): .git
No arm compiler nor library. Quit testing.
sDynamic batchnorm operator load test passed!
.Dynamic binary operator load test passed!
.Dynamic unary operator load test passed!
.Waiting for device 192.168.1.5: try 1 of 15
---begining of stderr---
512+0 records in
512+0 records out
262144 bytes (262 kB, 256 KiB) copied, 0.0763957 s, 3.4 MB/s

---end of stderr---
---begining of stderr---
Connection to 192.168.1.5 closed by remote host.

---end of stderr---
Waiting for device 192.168.1.5: try 1 of 15
---begining of stdout---
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.

--- 192.168.1.5 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4030ms


---end of stdout---

Waiting for device 192.168.1.5: try 2 of 15
fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Passed!
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Passed!
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Passed!
.Graph test passed!
.Waiting for device 192.168.1.5: try 1 of 15
---begining of stderr---
512+0 records in
512+0 records out
262144 bytes (262 kB, 256 KiB) copied, 0.0758065 s, 3.5 MB/s

---end of stderr---
---begining of stderr---
Connection to 192.168.1.5 closed by remote host.

---end of stderr---
Waiting for device 192.168.1.5: try 1 of 15
---begining of stdout---
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.

--- 192.168.1.5 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4030ms


---end of stdout---

Waiting for device 192.168.1.5: try 2 of 15
fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test cls: passed!  100.000% of the output values are correct
[hard quantize == False, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test det: passed!  100.000% of the output values are correct
[hard quantize == True, threshold skipping == True, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test seg: passed!  99.990% of the output values are correct
[hard quantize == False, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test seg: passed!  99.990% of the output values are correct
[hard quantize == True, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test seg: passed!  99.990% of the output values are correct
[hard quantize == True, threshold skipping == True, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test cls: passed!  100.000% of the output values are correct
[hard quantize == True, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Output: 
[[9.7157601e-05 5.0596573e-05 1.9754132e-02 7.4322694e-03 9.4586341e-03
  1.7991741e-04 9.6289086e-01 3.7420050e-05 6.9858936e-05 2.9197468e-05]]
Test: 100.000% of the output values are correct
Codegen test cls: passed!  100.000% of the output values are correct
[hard quantize == True, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
sfatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test gconv_cls: passed!  100.000% of the output values are correct
[hard quantize == False, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test gconv_cls: passed!  100.000% of the output values are correct
[hard quantize == True, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test ts_cls: passed!  100.000% of the output values are correct
[hard quantize == True, threshold skipping == True, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test det: passed!  100.000% of the output values are correct
[hard quantize == False, threshold skipping == False, cache == False]
.fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Codegen test det: passed!  100.000% of the output values are correct
[hard quantize == True, threshold skipping == False, cache == False]
.GraphRunner bradth-first mode test passed!
.GraphRunner depth-first mode test passed!
.GraphRunner lazy breadth-first mode test passed!
.Precompute test #1 passed!
.Precompute test #2 passed!
.Precompute test #3 passed!
.Transpose_NHWC test #1 passed!
.mispadding height at stride_conv1_conv2d_Conv2D: 1
mispadding width at stride_conv1_conv2d_Conv2D: 1
TF file import test passed for classification!
.TF file import test passed for group convolution!
.TF file import test passed for object detection!
.TF file export test #1 passed!
./usr/local/pyenv/versions/3.6.3/envs/python3.6/lib/python3.6/site-packages/tensorflow-1.4.1-py3.6-linux-x86_64.egg/tensorflow/python/util/tf_inspect.py:45: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() or inspect.getfullargspec()
  if d.decorator_argspec is not None), _inspect.getargspec(target))
TF file export test #2 passed!
.TF file import test passed!
.Waiting for device 192.168.1.5: try 1 of 15
---begining of stderr---
512+0 records in
512+0 records out
262144 bytes (262 kB, 256 KiB) copied, 0.0771469 s, 3.4 MB/s

---end of stderr---
---begining of stderr---
Connection to 192.168.1.5 closed by remote host.

---end of stderr---
Waiting for device 192.168.1.5: try 1 of 15
---begining of stdout---
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.

--- 192.168.1.5 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4031ms


---end of stdout---

Waiting for device 192.168.1.5: try 2 of 15
fatal: Not a git repository (or any of the parent directories): .git
import pb file
optimize graph step: start
optimize graph step: done!
generate code step: start
generate code step: done!
Binary time-measurement test : passed!
.Conv test passed!
.MaxPool test passed!
.Consistency test for 'Add' #1 passed!
.Consistency test for 'Add' #2 passed!
.Consistency test for conv operator passed!
.Consistency test for pooling operator passed!
.
----------------------------------------------------------------------
Ran 70 tests in 531.799s

OK (skipped=31)
+ echo '# check PEP8'
# check PEP8
++ id -un
+ docker run --rm -t jenkins_blueoil:local_build /bin/bash -c 'cd dlk && pycodestyle --ignore=W --max-line-length=120 --exclude='\''*static/pb*'\'','\''*docs/*'\'','\''*.eggs*'\'','\''*tvm/*'\'','\''*tests/*'\'','\''backends/*'\'' .'
Setting status of dbc61b6dc8a1acb7ae1b16e7610a9600989664d2 to SUCCESS with url http://jenkins.leapmind.local:8080/job/blueoil_dlk_test/107/console and message: 'Success!
 '
Using context: [dlk] jenkins test
Finished: SUCCESS

Optimizer Selection

Problem

Current Blueoil use Momentum optimizer. I also want to use Adam optimizer for some experiments.

How to implement

Current implementation is below. MomentumOptimizer is hard coded.

Classification
https://github.com/blue-oil/blueoil/blob/master/blueoil/templates/lmnet/classification.tpl.py#L70

Object Detection
https://github.com/blue-oil/blueoil/blob/master/blueoil/templates/lmnet/object_detection.tpl.py#L90

I want to add the choice to blueoil_init.py. And also add test to blueoil_test.sh.

WIDER_FACE dataset includes some 0 size bounding boxes

Though we don't make it public, we support WIDER_FACE dataset format class. However, WIDER_FACE includes some weird annotations, the height or width of bonding box is 0.

We have some choices to fix the problem.

  • just skip 0 size bounding box
  • set minimum width/height for bounding box
  • just skip the image if a bounding box has 0 width or 0 height.

I don't know which one is better, but the 2nd one looks better.

add new preprocessing: PerImageStandardization

Currently, we supports only DivideBy255 preprocessor. However, internally, we've prepared PerImageStandardization. @yasumura-lm san mentioned that sometimes this preprocessing method is is very effective.

Hence, we want to support PerImageStandardization.

lmnet documentation could not build

I'm trying to build lmnet documentation.
When execute remake_docs.sh, I got this error

$ pwd
/Users/username/projects/blueoil/lmnet/docs

$ ./remake_docs.sh 
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6
  return f(*args, **kwds)
WARNING: failed to import 'blocks': No module named 'lmnet'
Creating file ./source/blocks.rst.
Creating file ./source/common.rst.
WARNING: failed to import 'data_augmentor': No module named 'lmnet'
Creating file ./source/data_augmentor.rst.
Creating file ./source/data_processor.rst.
Creating file ./source/environment.rst.
WARNING: failed to import 'post_processor': No module named 'lmnet'
Creating file ./source/post_processor.rst.
WARNING: failed to import 'pre_processor': No module named 'lmnet'
Creating file ./source/pre_processor.rst.
WARNING: failed to import 'layers': No module named 'lmnet'
WARNING: failed to import 'layers.layers': No module named 'lmnet'
Creating file ./source/layers.layers.rst.
Traceback (most recent call last):
  File "/Users/username/projects/blueoil/venv/bin/better-apidoc", line 11, in <module>
    sys.exit(main())
  File "/Users/username/projects/blueoil/venv/lib/python3.6/site-packages/better_apidoc.py", line 754, in main
    modules = recurse_tree(rootpath, excludes, opts)
  File "/Users/username/projects/blueoil/venv/lib/python3.6/site-packages/better_apidoc.py", line 612, in recurse_tree
    py_files, opts, subs, is_namespace)
  File "/Users/username/projects/blueoil/venv/lib/python3.6/site-packages/better_apidoc.py", line 515, in create_package_file
    text = template.render(**package_ns)
UnboundLocalError: local variable 'package_ns' referenced before assignment

I'm using Python 3.6.7 and better-apidoc 0.2.0

kernel_transform_NHWC_to_HWNoCNi is called every time

kernel_transform_NHWC_to_HWNoCNi is called every time before execution of quantized convolution, however, since weights are fixed values, we can skip this computation if we can store the result of transformation to somewhere.

We have several choices to solve the problem.

  1. prepare cache for the result of transformation
  2. rewrite weight value directly

I think 1. is better than 2., since the best memory layout for convolution kernel depends on the implementation of convolution, we cannot choose one memory layout as of now.

NEON rsqrt instruction's precision

We use NEON rsqrt instruction.
and It seems to do excessive correction for me.

https://github.com/blue-oil/blueoil/blob/master/dlk/python/dlk/templates/src/func/arm_neon/batch_normalization.cpp#L47

    float32x4_t rsqrt_est = vrsqrteq_f32(scale_b);
    rsqrt_est = vrsqrtsq_f32(scale_b * rsqrt_est, rsqrt_est) * rsqrt_est; // 1st correction
    scale_b = vrsqrtsq_f32(scale_b * rsqrt_est, rsqrt_est) * rsqrt_est; // 2nd correction

calculated value.

1st: 0.981483
2nd: 0.981484
1st: 1.05621
2nd: 1.05621
1st: 0.779374
2nd: 0.779374
1st: 0.876157
2nd: 0.876158
1st: 0.921441
2nd: 0.921441
1st: 0.852958
2nd: 0.852959

For now, I have not found a description of initial precision, but as soon as accuracy is known I will examine this part.

There are cases to fail packing

in src file:
 dlk/python/dlk/templates/src/pack_input_to_qwords.cpp

nbit_qinput_word equals 32.
And when fractional processing does not go well,
there is a possibility of erroneous results.

  for (; idx_in < len; idx_in++) {
    QUANTIZED_NOT_PACKED tmp_input = input[idx_in];
    unsigned int b0 = tmp_input & 0x1;
    unsigned int b1 = (tmp_input & 0x2) >> 1;

    qinput_words_buf[0] |= (b0 << bit_count);
    qinput_words_buf[1] |= (b1 << bit_count);
    ++bit_count;

    if (bit_count == nbit_qinput_word) ★not reach nbit_qinput_word
      {
        for (unsigned i_bit = 0; i_bit < input_bitwidth; i_bit++) {
          output[idx_out++] = qinput_words_buf[i_bit];
          qinput_words_buf[i_bit] = 0;
        }

        bit_count = 0;
      }
  }

dlk jenkins test fail. ERROR: Error cloning remote repo 'origin'

GitHub pull request #14 of commit 9d35528b460d552ec1bd9a9eaed4fa53ec58f79b, no merge conflicts.
Setting status of 9d35528b460d552ec1bd9a9eaed4fa53ec58f79b to PENDING with url http://jenkins.leapmind.local:8080/job/blueoil_dlk_test/289/console and message: 'Build started for merge commit.'
Using context: [dlk] jenkins test
Building in workspace /var/lib/jenkins/workspace/blueoil_dlk_test
[WS-CLEANUP] Deleting project workspace...
[WS-CLEANUP] Deferred wipeout is used...
[WS-CLEANUP] Done
Cloning the remote Git repository
Cloning repository [email protected]:blue-oil/blueoil.git
 > git init /var/lib/jenkins/workspace/blueoil_dlk_test # timeout=10
Fetching upstream changes from [email protected]:blue-oil/blueoil.git
 > git --version # timeout=10
 > git fetch --tags --progress [email protected]:blue-oil/blueoil.git +refs/heads/*:refs/remotes/origin/*
ERROR: Timeout after 10 minutes
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "git fetch --tags --progress [email protected]:blue-oil/blueoil.git +refs/heads/*:refs/remotes/origin/*" returned status code 143:
stdout: 
stderr: remote: Enumerating objects: 3, done.        
remote: Counting objects:  33% (1/3)           
remote: Counting objects:  66% (2/3)           
remote: Counting objects: 100% (3/3)           
remote: Counting objects: 100% (3/3), done.        
remote: Compressing objects:  33% (1/3)           
remote: Compressing objects:  66% (2/3)           
remote: Compressing objects: 100% (3/3)           
remote: Compressing objects: 100% (3/3), done.        
Receiving objects:   0% (1/1468)   
Receiving objects:   1% (15/1468)   
Receiving objects:   2% (30/1468)   
Receiving objects:   3% (45/1468)   
Receiving objects:   4% (59/1468)   
Receiving objects:   5% (74/1468)   
Receiving objects:   6% (89/1468)   
Receiving objects:   7% (103/1468)   
Receiving objects:   8% (118/1468)   
Receiving objects:   9% (133/1468), 52.01 KiB | 81.00 KiB/s   
Receiving objects:  10% (147/1468), 52.01 KiB | 81.00 KiB/s   
Receiving objects:  11% (162/1468), 52.01 KiB | 81.00 KiB/s   
Receiving objects:  12% (177/1468), 52.01 KiB | 81.00 KiB/s   
Receiving objects:  13% (191/1468), 52.01 KiB | 81.00 KiB/s   
Receiving objects:  13% (197/1468), 52.01 KiB | 81.00 KiB/s   
Receiving objects:  14% (206/1468), 52.01 KiB | 81.00 KiB/s   
Receiving objects:  15% (221/1468), 164.01 KiB | 90.00 KiB/s   
Receiving objects:  16% (235/1468), 164.01 KiB | 90.00 KiB/s   
Receiving objects:  16% (236/1468), 236.01 KiB | 98.00 KiB/s   
Receiving objects:  16% (236/1468), 388.01 KiB | 107.00 KiB/s   
Receiving objects:  16% (236/1468), 500.01 KiB | 119.00 KiB/s   
Receiving objects:  16% (236/1468), 684.01 KiB | 126.00 KiB/s   
Receiving objects:  16% (236/1468), 836.01 KiB | 138.00 KiB/s   
Receiving objects:  16% (236/1468), 1020.01 KiB | 152.00 KiB/s   
Receiving objects:  16% (236/1468), 1.08 MiB | 151.00 KiB/s   
Receiving objects:  16% (236/1468), 1.30 MiB | 163.00 KiB/s   
Receiving objects:  16% (236/1468), 1.46 MiB | 164.00 KiB/s   
Receiving objects:  16% (236/1468), 1.65 MiB | 170.00 KiB/s   
Receiving objects:  16% (236/1468), 1.78 MiB | 177.00 KiB/s   
Receiving objects:  16% (236/1468), 2.00 MiB | 183.00 KiB/s   
Receiving objects:  16% (236/1468), 2.21 MiB | 177.00 KiB/s   
Receiving objects:  16% (236/1468), 2.34 MiB | 187.00 KiB/s   
Receiving objects:  16% (236/1468), 2.53 MiB | 177.00 KiB/s   
Receiving objects:  16% (236/1468), 2.60 MiB | 173.00 KiB/s   
Receiving objects:  16% (236/1468), 2.74 MiB | 157.00 KiB/s   
Receiving objects:  16% (236/1468), 2.86 MiB | 128.00 KiB/s   
Receiving objects:  16% (236/1468), 2.89 MiB | 116.00 KiB/s   
Receiving objects:  16% (236/1468), 2.96 MiB | 101.00 KiB/s   
Receiving objects:  16% (236/1468), 3.02 MiB | 94.00 KiB/s   
Receiving objects:  16% (236/1468), 3.13 MiB | 86.00 KiB/s   
Receiving objects:  16% (236/1468), 3.21 MiB | 79.00 KiB/s   
Receiving objects:  16% (236/1468), 3.33 MiB | 85.00 KiB/s   
Receiving objects:  16% (236/1468), 3.39 MiB | 89.00 KiB/s   
Receiving objects:  16% (236/1468), 3.52 MiB | 96.00 KiB/s   
Receiving objects:  16% (236/1468), 3.58 MiB | 97.00 KiB/s   
Receiving objects:  16% (236/1468), 3.71 MiB | 99.00 KiB/s   
Receiving objects:  16% (236/1468), 3.83 MiB | 98.00 KiB/s   
Receiving objects:  16% (236/1468), 3.89 MiB | 95.00 KiB/s   
Receiving objects:  16% (236/1468), 3.96 MiB | 94.00 KiB/s   
Receiving objects:  16% (236/1468), 4.08 MiB | 97.00 KiB/s   
Receiving objects:  16% (236/1468), 4.21 MiB | 96.00 KiB/s   
Receiving objects:  16% (236/1468), 4.27 MiB | 97.00 KiB/s   
Receiving objects:  16% (236/1468), 4.39 MiB | 104.00 KiB/s   
Receiving objects:  16% (236/1468), 4.55 MiB | 111.00 KiB/s   
Receiving objects:  16% (236/1468), 4.61 MiB | 110.00 KiB/s   
Receiving objects:  16% (236/1468), 4.77 MiB | 113.00 KiB/s   
Receiving objects:  16% (236/1468), 4.83 MiB | 111.00 KiB/s   
Receiving objects:  16% (236/1468), 4.96 MiB | 116.00 KiB/s   
Receiving objects:  16% (236/1468), 5.10 MiB | 111.00 KiB/s   
Receiving objects:  16% (236/1468), 5.18 MiB | 110.00 KiB/s   
Receiving objects:  16% (236/1468), 5.24 MiB | 106.00 KiB/s   
Receiving objects:  16% (236/1468), 5.30 MiB | 93.00 KiB/s   
Receiving objects:  16% (236/1468), 5.39 MiB | 88.00 KiB/s   
Receiving objects:  16% (236/1468), 5.46 MiB | 84.00 KiB/s   
Receiving objects:  16% (236/1468), 5.52 MiB | 82.00 KiB/s   
Receiving objects:  16% (236/1468), 5.64 MiB | 81.00 KiB/s   
Receiving objects:  16% (236/1468), 5.71 MiB | 77.00 KiB/s   
Receiving objects:  16% (236/1468), 5.77 MiB | 78.00 KiB/s   
Receiving objects:  16% (236/1468), 5.83 MiB | 82.00 KiB/s   
Receiving objects:  16% (236/1468), 5.93 MiB | 84.00 KiB/s   
Receiving objects:  16% (236/1468), 6.05 MiB | 89.00 KiB/s   
Receiving objects:  16% (236/1468), 6.11 MiB | 87.00 KiB/s   
Receiving objects:  16% (236/1468), 6.24 MiB | 92.00 KiB/s   
Receiving objects:  16% (236/1468), 6.39 MiB | 103.00 KiB/s   
Receiving objects:  16% (236/1468), 6.46 MiB | 104.00 KiB/s   
Receiving objects:  16% (236/1468), 6.58 MiB | 108.00 KiB/s   
Receiving objects:  16% (236/1468), 6.64 MiB | 108.00 KiB/s   
Receiving objects:  16% (236/1468), 6.74 MiB | 103.00 KiB/s   
Receiving objects:  16% (236/1468), 6.86 MiB | 104.00 KiB/s   
Receiving objects:  16% (236/1468), 6.96 MiB | 104.00 KiB/s   
Receiving objects:  16% (236/1468), 7.10 MiB | 101.00 KiB/s   
Receiving objects:  16% (236/1468), 7.18 MiB | 104.00 KiB/s   
Receiving objects:  16% (236/1468), 7.30 MiB | 102.00 KiB/s   
Receiving objects:  16% (242/1468), 7.36 MiB | 105.00 KiB/s   
Receiving objects:  16% (242/1468), 7.46 MiB | 97.00 KiB/s   
Receiving objects:  16% (242/1468), 7.52 MiB | 88.00 KiB/s   
Receiving objects:  16% (242/1468), 7.58 MiB | 86.00 KiB/s   
Receiving objects:  16% (242/1468), 7.64 MiB | 81.00 KiB/s   
Receiving objects:  16% (242/1468), 7.68 MiB | 74.00 KiB/s   
Receiving objects:  16% (242/1468), 7.74 MiB | 64.00 KiB/s   
Receiving objects:  16% (242/1468), 7.77 MiB | 59.00 KiB/s   
Receiving objects:  16% (242/1468), 7.86 MiB | 57.00 KiB/s   
Receiving objects:  16% (242/1468), 7.93 MiB | 59.00 KiB/s   
Receiving objects:  16% (242/1468), 7.99 MiB | 61.00 KiB/s   
Receiving objects:  16% (242/1468), 8.05 MiB | 64.00 KiB/s   
Receiving objects:  16% (242/1468), 8.14 MiB | 66.00 KiB/s   
Receiving objects:  16% (242/1468), 8.21 MiB | 68.00 KiB/s   
Receiving objects:  16% (242/1468), 8.27 MiB | 75.00 KiB/s   
Receiving objects:  16% (242/1468), 8.39 MiB | 84.00 KiB/s   
Receiving objects:  16% (242/1468), 8.52 MiB | 90.00 KiB/s   
Receiving objects:  16% (242/1468), 8.61 MiB | 94.00 KiB/s   
Receiving objects:  16% (242/1468), 8.80 MiB | 115.00 KiB/s   
Receiving objects:  16% (242/1468), 8.89 MiB | 126.00 KiB/s   
Receiving objects:  16% (242/1468), 9.10 MiB | 140.00 KiB/s   
Receiving objects:  16% (242/1468), 9.27 MiB | 147.00 KiB/s   
Receiving objects:  16% (242/1468), 9.36 MiB | 147.00 KiB/s   
Receiving objects:  16% (242/1468), 9.52 MiB | 146.00 KiB/s   
Receiving objects:  16% (242/1468), 9.61 MiB | 143.00 KiB/s   
Receiving objects:  16% (242/1468), 9.71 MiB | 139.00 KiB/s   
Receiving objects:  16% (242/1468), 9.89 MiB | 133.00 KiB/s   
Receiving objects:  16% (244/1468), 9.96 MiB | 129.00 KiB/s   
Receiving objects:  16% (244/1468), 10.08 MiB | 117.00 KiB/s   
Receiving objects:  16% (244/1468), 10.14 MiB | 116.00 KiB/s   
Receiving objects:  16% (244/1468), 10.29 MiB | 114.00 KiB/s   
Receiving objects:  16% (244/1468), 10.46 MiB | 115.00 KiB/s   
Receiving objects:  16% (244/1468), 10.55 MiB | 119.00 KiB/s   
Receiving objects:  16% (244/1468), 10.83 MiB | 158.00 KiB/s   
Receiving objects:  16% (244/1468), 11.30 MiB | 233.00 KiB/s   
Receiving objects:  16% (244/1468), 12.08 MiB | 370.00 KiB/s   
Receiving objects:  16% (244/1468), 12.55 MiB | 435.00 KiB/s   
Receiving objects:  16% (244/1468), 13.58 MiB | 608.00 KiB/s   
Receiving objects:  16% (244/1468), 14.46 MiB | 733.00 KiB/s   
Receiving objects:  17% (250/1468), 14.89 MiB | 743.00 KiB/s   
Receiving objects:  17% (251/1468), 15.32 MiB | 786.00 KiB/s   
Receiving objects:  17% (251/1468), 15.61 MiB | 767.00 KiB/s   
Receiving objects:  17% (251/1468), 16.20 MiB | 724.00 KiB/s   
Receiving objects:  17% (251/1468), 16.73 MiB | 641.00 KiB/s   
Receiving objects:  17% (254/1468), 17.26 MiB | 574.00 KiB/s   
Receiving objects:  17% (254/1468), 17.57 MiB | 481.00 KiB/s   
Receiving objects:  17% (254/1468), 17.79 MiB | 411.00 KiB/s   
Receiving objects:  17% (254/1468), 17.92 MiB | 357.00 KiB/s   
Receiving objects:  17% (254/1468), 18.14 MiB | 283.00 KiB/s   
Receiving objects:  17% (254/1468), 18.39 MiB | 217.00 KiB/s   
Receiving objects:  17% (254/1468), 18.51 MiB | 204.00 KiB/s   
Receiving objects:  17% (254/1468), 18.73 MiB | 193.00 KiB/s   
Receiving objects:  17% (254/1468), 18.99 MiB | 203.00 KiB/s   
Receiving objects:  17% (254/1468), 19.23 MiB | 212.00 KiB/s   
Receiving objects:  17% (254/1468), 19.36 MiB | 214.00 KiB/s   
Receiving objects:  17% (254/1468), 19.61 MiB | 220.00 KiB/s   
Receiving objects:  17% (254/1468), 19.86 MiB | 233.00 KiB/s   
Receiving objects:  17% (254/1468), 19.98 MiB | 214.00 KiB/s   
Receiving objects:  17% (254/1468), 20.14 MiB | 195.00 KiB/s   
Receiving objects:  17% (254/1468), 20.23 MiB | 184.00 KiB/s   
Receiving objects:  17% (254/1468), 20.39 MiB | 157.00 KiB/s   
Receiving objects:  17% (254/1468), 20.48 MiB | 149.00 KiB/s   
Receiving objects:  17% (254/1468), 20.67 MiB | 137.00 KiB/s   
Receiving objects:  17% (254/1468), 20.76 MiB | 139.00 KiB/s   
Receiving objects:  17% (254/1468), 20.92 MiB | 136.00 KiB/s   
Receiving objects:  17% (254/1468), 21.09 MiB | 140.00 KiB/s   
Receiving objects:  17% (254/1468), 21.26 MiB | 150.00 KiB/s   
Receiving objects:  17% (254/1468), 21.36 MiB | 143.00 KiB/s   
Receiving objects:  17% (254/1468), 21.54 MiB | 145.00 KiB/s   
Receiving objects:  17% (254/1468), 21.64 MiB | 141.00 KiB/s   
Receiving objects:  17% (254/1468), 21.76 MiB | 133.00 KiB/s   
Receiving objects:  17% (254/1468), 21.82 MiB | 129.00 KiB/s   
Receiving objects:  17% (254/1468), 21.95 MiB | 120.00 KiB/s   
Receiving objects:  17% (254/1468), 22.04 MiB | 122.00 KiB/s   
Receiving objects:  17% (254/1468), 22.23 MiB | 120.00 KiB/s   
Receiving objects:  17% (254/1468), 22.32 MiB | 124.00 KiB/s   
Receiving objects:  17% (254/1468), 22.54 MiB | 141.00 KiB/s   
Receiving objects:  17% (255/1468), 22.73 MiB | 151.00 KiB/s   
Receiving objects:  17% (255/1468), 22.82 MiB | 156.00 KiB/s   
Receiving objects:  17% (255/1468), 22.99 MiB | 156.00 KiB/s   
Receiving objects:  17% (255/1468), 23.04 MiB | 146.00 KiB/s   
Receiving objects:  17% (255/1468), 23.17 MiB | 131.00 KiB/s   
Receiving objects:  17% (255/1468), 23.32 MiB | 121.00 KiB/s   
Receiving objects:  17% (255/1468), 23.39 MiB | 118.00 KiB/s   
Receiving objects:  17% (255/1468), 23.57 MiB | 117.00 KiB/s   
Receiving objects:  17% (255/1468), 23.70 MiB | 128.00 KiB/s   
Receiving objects:  17% (255/1468), 24.04 MiB | 176.00 KiB/s   
Receiving objects:  17% (255/1468), 24.67 MiB | 280.00 KiB/s   
Receiving objects:  17% (257/1468), 25.51 MiB | 431.00 KiB/s   
Receiving objects:  17% (257/1468), 26.27 MiB | 565.00 KiB/s   
Receiving objects:  17% (257/1468), 26.92 MiB | 666.00 KiB/s   
Receiving objects:  17% (257/1468), 27.42 MiB | 667.00 KiB/s   
Receiving objects:  17% (257/1468), 27.67 MiB | 634.00 KiB/s   
Receiving objects:  17% (257/1468), 28.04 MiB | 515.00 KiB/s   
Receiving objects:  17% (257/1468), 28.35 MiB | 412.00 KiB/s   
Receiving objects:  17% (257/1468), 28.50 MiB | 378.00 KiB/s   
Receiving objects:  17% (257/1468), 28.79 MiB | 301.00 KiB/s   
Receiving objects:  17% (257/1468), 29.00 MiB | 261.00 KiB/s   
Receiving objects:  17% (257/1468), 29.22 MiB | 235.00 KiB/s   
Receiving objects:  17% (257/1468), 29.32 MiB | 225.00 KiB/s   
Receiving objects:  17% (257/1468), 29.57 MiB | 209.00 KiB/s   
Receiving objects:  17% (257/1468), 29.82 MiB | 199.00 KiB/s   
Receiving objects:  17% (257/1468), 29.94 MiB | 203.00 KiB/s   
Receiving objects:  17% (257/1468), 30.13 MiB | 177.00 KiB/s   
Receiving objects:  17% (257/1468), 30.18 MiB | 166.00 KiB/s   
Receiving objects:  17% (257/1468), 30.22 MiB | 152.00 KiB/s   
Receiving objects:  17% (257/1468), 30.35 MiB | 127.00 KiB/s   
Receiving objects:  17% (257/1468), 30.41 MiB | 114.00 KiB/s   
Receiving objects:  17% (257/1468), 30.54 MiB | 95.00 KiB/s   
Receiving objects:  17% (257/1468), 30.60 MiB | 92.00 KiB/s   
Receiving objects:  17% (257/1468), 30.72 MiB | 96.00 KiB/s   
Receiving objects:  17% (257/1468), 30.88 MiB | 103.00 KiB/s   
Receiving objects:  17% (257/1468), 30.94 MiB | 109.00 KiB/s   
Receiving objects:  17% (259/1468), 31.11 MiB | 116.00 KiB/s   
Receiving objects:  17% (259/1468), 31.13 MiB | 106.00 KiB/s   
Receiving objects:  17% (259/1468), 31.19 MiB | 98.00 KiB/s   
Receiving objects:  17% (259/1468), 31.25 MiB | 87.00 KiB/s   
Receiving objects:  17% (259/1468), 31.32 MiB | 80.00 KiB/s   
Receiving objects:  17% (259/1468), 31.38 MiB | 78.00 KiB/s   
Receiving objects:  17% (259/1468), 31.50 MiB | 70.00 KiB/s   
Receiving objects:  17% (259/1468), 31.57 MiB | 70.00 KiB/s   
Receiving objects:  17% (259/1468), 31.69 MiB | 84.00 KiB/s   
Receiving objects:  17% (259/1468), 31.82 MiB | 95.00 KiB/s   
Receiving objects:  17% (259/1468), 31.94 MiB | 105.00 KiB/s   
Receiving objects:  17% (259/1468), 32.00 MiB | 104.00 KiB/s   
Receiving objects:  17% (259/1468), 32.07 MiB | 105.00 KiB/s   
Receiving objects:  17% (259/1468), 32.18 MiB | 101.00 KiB/s   
Receiving objects:  17% (259/1468), 32.30 MiB | 97.00 KiB/s   
Receiving objects:  17% (259/1468), 32.35 MiB | 91.00 KiB/s   
Receiving objects:  17% (259/1468), 32.41 MiB | 80.00 KiB/s   
Receiving objects:  17% (259/1468), 32.47 MiB | 77.00 KiB/s   
Receiving objects:  17% (259/1468), 32.50 MiB | 75.00 KiB/s   
Receiving objects:  17% (259/1468), 32.60 MiB | 69.00 KiB/s   
Receiving objects:  17% (259/1468), 32.66 MiB | 70.00 KiB/s   
Receiving objects:  17% (259/1468), 32.72 MiB | 65.00 KiB/s   
Receiving objects:  17% (259/1468), 32.79 MiB | 67.00 KiB/s   
Receiving objects:  17% (259/1468), 32.91 MiB | 75.00 KiB/s   
Receiving objects:  17% (259/1468), 33.00 MiB | 83.00 KiB/s   
Receiving objects:  17% (259/1468), 33.16 MiB | 94.00 KiB/s   
Receiving objects:  17% (259/1468), 33.25 MiB | 100.00 KiB/s   
Receiving objects:  17% (260/1468), 33.32 MiB | 104.00 KiB/s   
Receiving objects:  17% (262/1468), 33.44 MiB | 109.00 KiB/s   
Receiving objects:  17% (262/1468), 33.60 MiB | 114.00 KiB/s   
Receiving objects:  17% (262/1468), 33.72 MiB | 111.00 KiB/s   
Receiving objects:  17% (262/1468), 33.79 MiB | 108.00 KiB/s   
Receiving objects:  17% (262/1468), 33.91 MiB | 103.00 KiB/s   
Receiving objects:  17% (262/1468), 33.97 MiB | 102.00 KiB/s   
Receiving objects:  17% (262/1468), 34.10 MiB | 106.00 KiB/s   
Receiving objects:  17% (262/1468), 34.19 MiB | 107.00 KiB/s   
Receiving objects:  17% (262/1468), 34.37 MiB | 116.00 KiB/s   
Receiving objects:  17% (262/1468), 34.54 MiB | 131.00 KiB/s   
Receiving objects:  17% (262/1468), 34.66 MiB | 138.00 KiB/s   
Receiving objects:  17% (262/1468), 34.82 MiB | 136.00 KiB/s   
Receiving objects:  17% (262/1468), 34.91 MiB | 135.00 KiB/s   
Receiving objects:  17% (262/1468), 35.00 MiB | 135.00 KiB/s   
Receiving objects:  17% (262/1468), 35.18 MiB | 136.00 KiB/s   
Receiving objects:  17% (262/1468), 35.35 MiB | 136.00 KiB/s   
Receiving objects:  17% (262/1468), 35.47 MiB | 147.00 KiB/s   
Receiving objects:  17% (262/1468), 35.72 MiB | 169.00 KiB/s   
Receiving objects:  17% (262/1468), 35.94 MiB | 187.00 KiB/s   
Receiving objects:  17% (262/1468), 36.22 MiB | 204.00 KiB/s   
Receiving objects:  17% (262/1468), 36.37 MiB | 222.00 KiB/s   
Receiving objects:  17% (262/1468), 36.66 MiB | 226.00 KiB/s   
Receiving objects:  17% (262/1468), 36.82 MiB | 232.00 KiB/s   
Receiving objects:  17% (262/1468), 36.98 MiB | 218.00 KiB/s   
Receiving objects:  17% (262/1468), 37.18 MiB | 205.00 KiB/s   
Receiving objects:  17% (262/1468), 37.25 MiB | 191.00 KiB/s   
Receiving objects:  17% (262/1468), 37.44 MiB | 172.00 KiB/s   
Receiving objects:  17% (262/1468), 37.63 MiB | 157.00 KiB/s   
Receiving objects:  17% (262/1468), 37.82 MiB | 156.00 KiB/s   
Receiving objects:  17% (262/1468), 37.91 MiB | 162.00 KiB/s   
Receiving objects:  17% (262/1468), 38.13 MiB | 172.00 KiB/s   
Receiving objects:  17% (263/1468), 38.35 MiB | 181.00 KiB/s   
Receiving objects:  17% (263/1468), 38.57 MiB | 180.00 KiB/s   
Receiving objects:  17% (263/1468), 38.69 MiB | 187.00 KiB/s   
Receiving objects:  17% (263/1468), 38.94 MiB | 193.00 KiB/s   
Receiving objects:  17% (263/1468), 39.07 MiB | 198.00 KiB/s   
Receiving objects:  17% (263/1468), 39.25 MiB | 193.00 KiB/s   
Receiving objects:  17% (263/1468), 39.44 MiB | 192.00 KiB/s   
Receiving objects:  18% (265/1468), 39.44 MiB | 192.00 KiB/s   
Receiving objects:  18% (265/1468), 39.69 MiB | 200.00 KiB/s   
Receiving objects:  18% (271/1468), 39.88 MiB | 194.00 KiB/s   
Receiving objects:  18% (271/1468), 39.97 MiB | 188.00 KiB/s   
Receiving objects:  18% (271/1468), 40.21 MiB | 188.00 KiB/s   
Receiving objects:  18% (271/1468), 40.40 MiB | 188.00 KiB/s   
Receiving objects:  18% (271/1468), 40.60 MiB | 175.00 KiB/s   
Receiving objects:  18% (271/1468), 40.68 MiB | 175.00 KiB/s   
Receiving objects:  18% (271/1468), 40.78 MiB | 166.00 KiB/s   
Receiving objects:  18% (271/1468), 40.97 MiB | 159.00 KiB/s   
Receiving objects:  18% (271/1468), 41.18 MiB | 157.00 KiB/s   
Receiving objects:  18% (271/1468), 41.28 MiB | 158.00 KiB/s   
Receiving objects:  18% (271/1468), 41.46 MiB | 162.00 KiB/s   
Receiving objects:  18% (271/1468), 41.68 MiB | 176.00 KiB/s   
Receiving objects:  18% (271/1468), 41.87 MiB | 181.00 KiB/s   
Receiving objects:  18% (271/1468), 42.09 MiB | 186.00 KiB/s   
Receiving objects:  18% (271/1468), 42.18 MiB | 185.00 KiB/s   
Receiving objects:  18% (271/1468), 42.37 MiB | 172.00 KiB/s   
Receiving objects:  18% (271/1468), 42.46 MiB | 171.00 KiB/s   
Receiving objects:  18% (271/1468), 42.59 MiB | 151.00 KiB/s   
Receiving objects:  18% (271/1468), 42.71 MiB | 133.00 KiB/s   
Receiving objects:  18% (271/1468), 42.81 MiB | 129.00 KiB/s   
Receiving objects:  18% (271/1468), 43.00 MiB | 126.00 KiB/s   
Receiving objects:  18% (271/1468), 43.11 MiB | 135.00 KiB/s   
Receiving objects:  18% (271/1468), 43.28 MiB | 138.00 KiB/s   
Receiving objects:  18% (271/1468), 43.53 MiB | 159.00 KiB/s   
Receiving objects:  18% (271/1468), 43.65 MiB | 171.00 KiB/s   
Receiving objects:  18% (271/1468), 43.84 MiB | 180.00 KiB/s   
Receiving objects:  18% (271/1468), 44.06 MiB | 187.00 KiB/s   
Receiving objects:  18% (271/1468), 44.28 MiB | 194.00 KiB/s   
Receiving objects:  18% (271/1468), 44.40 MiB | 193.00 KiB/s   
Receiving objects:  18% (271/1468), 44.65 MiB | 193.00 KiB/s   
Receiving objects:  18% (271/1468), 44.84 MiB | 190.00 KiB/s   
Receiving objects:  18% (271/1468), 44.93 MiB | 186.00 KiB/s   
Receiving objects:  18% (271/1468), 45.12 MiB | 184.00 KiB/s   
Receiving objects:  18% (271/1468), 45.31 MiB | 173.00 KiB/s   
Receiving objects:  18% (271/1468), 45.40 MiB | 171.00 KiB/s   
Receiving objects:  18% (271/1468), 45.56 MiB | 162.00 KiB/s   
Receiving objects:  18% (271/1468), 45.75 MiB | 155.00 KiB/s   
Receiving objects:  18% (271/1468), 45.84 MiB | 156.00 KiB/s   
Receiving objects:  18% (271/1468), 46.03 MiB | 147.00 KiB/s   
Receiving objects:  18% (271/1468), 46.15 MiB | 140.00 KiB/s   
Receiving objects:  18% (271/1468), 46.21 MiB | 140.00 KiB/s   
Receiving objects:  18% (271/1468), 46.40 MiB | 132.00 KiB/s   
Receiving objects:  18% (271/1468), 46.50 MiB | 131.00 KiB/s   
Receiving objects:  18% (271/1468), 46.65 MiB | 130.00 KiB/s   
Receiving objects:  18% (271/1468), 46.71 MiB | 126.00 KiB/s   
Receiving objects:  18% (271/1468), 46.90 MiB | 127.00 KiB/s   
Receiving objects:  18% (271/1468), 47.00 MiB | 129.00 KiB/s   
Receiving objects:  18% (271/1468), 47.15 MiB | 129.00 KiB/s   
Receiving objects:  18% (271/1468), 47.31 MiB | 127.00 KiB/s   
Receiving objects:  18% (271/1468), 47.40 MiB | 125.00 KiB/s   
Receiving objects:  18% (271/1468), 47.46 MiB | 128.00 KiB/s   
Receiving objects:  18% (271/1468), 47.65 MiB | 126.00 KiB/s   
Receiving objects:  18% (271/1468), 47.75 MiB | 126.00 KiB/s   
Receiving objects:  18% (271/1468), 47.93 MiB | 132.00 KiB/s   
Receiving objects:  18% (271/1468), 48.03 MiB | 134.00 KiB/s   
Receiving objects:  18% (271/1468), 48.21 MiB | 142.00 KiB/s   
Receiving objects:  18% (271/1468), 48.40 MiB | 155.00 KiB/s   
Receiving objects:  18% (271/1468), 48.59 MiB | 165.00 KiB/s   
Receiving objects:  18% (271/1468), 48.81 MiB | 179.00 KiB/s   
Receiving objects:  18% (271/1468), 48.87 MiB | 177.00 KiB/s   
Receiving objects:  18% (271/1468), 49.06 MiB | 175.00 KiB/s   
Receiving objects:  18% (271/1468), 49.18 MiB | 158.00 KiB/s   
Receiving objects:  18% (271/1468), 49.25 MiB | 147.00 KiB/s   
Receiving objects:  18% (271/1468), 49.37 MiB | 131.00 KiB/s   
Receiving objects:  18% (271/1468), 49.50 MiB | 119.00 KiB/s   
Receiving objects:  18% (271/1468), 49.62 MiB | 112.00 KiB/s   
Receiving objects:  18% (271/1468), 49.71 MiB | 116.00 KiB/s   
Receiving objects:  18% (271/1468), 49.90 MiB | 130.00 KiB/s   
Receiving objects:  18% (271/1468), 50.18 MiB | 163.00 KiB/s   
Receiving objects:  18% (271/1468), 50.62 MiB | 226.00 KiB/s   
Receiving objects:  18% (271/1468), 50.93 MiB | 276.00 KiB/s   
Receiving objects:  18% (271/1468), 51.53 MiB | 373.00 KiB/s   
Receiving objects:  18% (271/1468), 52.18 MiB | 466.00 KiB/s   
Receiving objects:  18% (271/1468), 52.71 MiB | 509.00 KiB/s   
Receiving objects:  18% (271/1468), 52.99 MiB | 529.00 KiB/s   
Receiving objects:  18% (271/1468), 53.33 MiB | 478.00 KiB/s   
Receiving objects:  18% (271/1468), 53.52 MiB | 389.00 KiB/s   
Receiving objects:  18% (271/1468), 53.61 MiB | 347.00 KiB/s   
Receiving objects:  18% (271/1468), 53.80 MiB | 245.00 KiB/s   
Receiving objects:  18% (271/1468), 53.89 MiB | 218.00 KiB/s   
Receiving objects:  18% (271/1468), 54.05 MiB | 159.00 KiB/s   
Receiving objects:  18% (271/1468), 54.24 MiB | 139.00 KiB/s   
Receiving objects:  18% (271/1468), 54.33 MiB | 144.00 KiB/s   
Receiving objects:  18% (271/1468), 54.52 MiB | 147.00 KiB/s   
Receiving objects:  18% (271/1468), 54.71 MiB | 155.00 KiB/s   
Receiving objects:  18% (271/1468), 54.89 MiB | 163.00 KiB/s   
Receiving objects:  18% (271/1468), 54.99 MiB | 167.00 KiB/s   
Receiving objects:  18% (271/1468), 55.24 MiB | 179.00 KiB/s   
Receiving objects:  18% (271/1468), 55.49 MiB | 188.00 KiB/s   
Receiving objects:  18% (271/1468), 55.61 MiB | 192.00 KiB/s   
Receiving objects:  18% (271/1468), 55.86 MiB | 201.00 KiB/s   
Receiving objects:  18% (271/1468), 56.08 MiB | 207.00 KiB/s   
Receiving objects:  18% (271/1468), 56.21 MiB | 209.00 KiB/s   
Receiving objects:  18% (271/1468), 56.43 MiB | 205.00 KiB/s   
Receiving objects:  18% (271/1468), 56.68 MiB | 204.00 KiB/s   
Receiving objects:  18% (271/1468), 56.80 MiB | 204.00 KiB/s   
Receiving objects:  18% (271/1468), 57.02 MiB | 199.00 KiB/s   
Receiving objects:  18% (272/1468), 57.14 MiB | 202.00 KiB/s   
Receiving objects:  18% (275/1468), 57.39 MiB | 207.00 KiB/s   
Receiving objects:  18% (275/1468), 57.64 MiB | 205.00 KiB/s   
Receiving objects:  18% (275/1468), 57.83 MiB | 200.00 KiB/s   
Receiving objects:  18% (275/1468), 57.93 MiB | 192.00 KiB/s   
Receiving objects:  18% (275/1468), 58.11 MiB | 182.00 KiB/s   
Receiving objects:  18% (275/1468), 58.30 MiB | 171.00 KiB/s   
Receiving objects:  18% (275/1468), 58.39 MiB | 159.00 KiB/s   
Receiving objects:  18% (275/1468), 58.55 MiB | 139.00 KiB/s   
Receiving objects:  18% (275/1468), 58.61 MiB | 126.00 KiB/s   
Receiving objects:  18% (275/1468), 58.68 MiB | 120.00 KiB/s   
Receiving objects:  18% (275/1468), 58.74 MiB | 107.00 KiB/s   
Receiving objects:  18% (275/1468), 58.83 MiB | 95.00 KiB/s   
Receiving objects:  18% (275/1468), 58.89 MiB | 88.00 KiB/s   
Receiving objects:  18% (275/1468), 58.96 MiB | 84.00 KiB/s   
Receiving objects:  18% (275/1468), 59.07 MiB | 81.00 KiB/s   
Receiving objects:  18% (275/1468), 59.18 MiB | 81.00 KiB/s   
Receiving objects:  18% (275/1468), 59.21 MiB | 82.00 KiB/s   
Receiving objects:  18% (275/1468), 59.27 MiB | 83.00 KiB/s   
Receiving objects:  18% (275/1468), 59.39 MiB | 81.00 KiB/s   
Receiving objects:  18% (275/1468), 59.46 MiB | 80.00 KiB/s   
Receiving objects:  18% (275/1468), 59.52 MiB | 80.00 KiB/s   
Receiving objects:  18% (275/1468), 59.64 MiB | 82.00 KiB/s   
Receiving objects:  18% (275/1468), 59.71 MiB | 82.00 KiB/s   
Receiving objects:  18% (275/1468), 59.83 MiB | 89.00 KiB/s   
Receiving objects:  18% (275/1468), 59.89 MiB | 95.00 KiB/s   
Receiving objects:  18% (275/1468), 60.05 MiB | 104.00 KiB/s   
Receiving objects:  18% (275/1468), 60.21 MiB | 114.00 KiB/s   
Receiving objects:  18% (275/1468), 60.30 MiB | 122.00 KiB/s   
Receiving objects:  18% (275/1468), 60.49 MiB | 135.00 KiB/s   
Receiving objects:  18% (275/1468), 60.58 MiB | 131.00 KiB/s   
Receiving objects:  18% (275/1468), 60.68 MiB | 132.00 KiB/s   
Receiving objects:  18% (275/1468), 60.77 MiB | 121.00 KiB/s   
Receiving objects:  18% (275/1468), 60.83 MiB | 117.00 KiB/s   
Receiving objects:  18% (275/1468), 60.96 MiB | 107.00 KiB/s   
Receiving objects:  18% (275/1468), 61.02 MiB | 89.00 KiB/s   
Receiving objects:  18% (275/1468), 61.10 MiB | 92.00 KiB/s   
Receiving objects:  18% (275/1468), 61.18 MiB | 86.00 KiB/s   
Receiving objects:  18% (275/1468), 61.27 MiB | 83.00 KiB/s   
Receiving objects:  18% (275/1468), 61.33 MiB | 83.00 KiB/s   
Receiving objects:  18% (275/1468), 61.46 MiB | 86.00 KiB/s   
Receiving objects:  18% (275/1468), 61.52 MiB | 91.00 KiB/s   
Receiving objects:  18% (275/1468), 61.68 MiB | 103.00 KiB/s   
Receiving objects:  18% (275/1468), 61.86 MiB | 119.00 KiB/s   
Receiving objects:  18% (275/1468), 62.24 MiB | 175.00 KiB/s   
Receiving objects:  18% (275/1468), 62.52 MiB | 219.00 KiB/s   
Receiving objects:  18% (275/1468), 63.02 MiB | 302.00 KiB/s   
Receiving objects:  18% (275/1468), 63.61 MiB | 400.00 KiB/s   
Receiving objects:  18% (275/1468), 64.21 MiB | 485.00 KiB/s   
Receiving objects:  18% (275/1468), 64.55 MiB | 499.00 KiB/s   
Receiving objects:  18% (275/1468), 64.83 MiB | 425.00 KiB/s   
Receiving objects:  18% (275/1468), 64.89 MiB | 385.00 KiB/s   
Receiving objects:  18% (275/1468), 65.11 MiB | 287.00 KiB/s   
Receiving objects:  18% (275/1468), 65.20 MiB | 250.00 KiB/s   
Receiving objects:  18% (275/1468), 65.39 MiB | 186.00 KiB/s   
Receiving objects:  18% (275/1468), 65.58 MiB | 160.00 KiB/s   
Receiving objects:  18% (275/1468), 65.71 MiB | 159.00 KiB/s   
Receiving objects:  18% (275/1468), 65.95 MiB | 168.00 KiB/s   
Receiving objects:  18% (275/1468), 66.23 MiB | 192.00 KiB/s   
Receiving objects:  18% (275/1468), 66.42 MiB | 210.00 KiB/s   
Receiving objects:  18% (275/1468), 66.76 MiB | 248.00 KiB/s   
Receiving objects:  18% (275/1468), 67.17 MiB | 290.00 KiB/s   
Receiving objects:  18% (275/1468), 67.61 MiB | 340.00 KiB/s   
Receiving objects:  18% (275/1468), 68.01 MiB | 373.00 KiB/s   
Receiving objects:  18% (275/1468), 68.26 MiB | 380.00 KiB/s   
Receiving objects:  18% (275/1468), 68.73 MiB | 384.00 KiB/s   
Receiving objects:  18% (275/1468), 69.01 MiB | 396.00 KiB/s   
Receiving objects:  18% (275/1468), 69.42 MiB | 397.00 KiB/s   
Receiving objects:  18% (275/1468), 69.76 MiB | 382.00 KiB/s   
Receiving objects:  18% (275/1468), 70.14 MiB | 361.00 KiB/s   
Receiving objects:  18% (275/1468), 70.45 MiB | 346.00 KiB/s   
Receiving objects:  18% (275/1468), 70.61 MiB | 323.00 KiB/s   
Receiving objects:  18% (275/1468), 70.92 MiB | 301.00 KiB/s   
Receiving objects:  18% (275/1468), 71.26 MiB | 294.00 KiB/s   
Receiving objects:  18% (275/1468), 71.51 MiB | 272.00 KiB/s   
Receiving objects:  18% (275/1468), 71.64 MiB | 266.00 KiB/s   
Receiving objects:  18% (275/1468), 71.89 MiB | 250.00 KiB/s   
Receiving objects:  18% (275/1468), 72.11 MiB | 233.00 KiB/s   
Receiving objects:  18% (275/1468), 72.23 MiB | 211.00 KiB/s   
Receiving objects:  18% (275/1468), 72.45 MiB | 196.00 KiB/s   
Receiving objects:  18% (275/1468), 72.54 MiB | 193.00 KiB/s   
Receiving objects:  18% (275/1468), 72.70 MiB | 180.00 KiB/s   
Receiving objects:  18% (275/1468), 72.86 MiB | 156.00 KiB/s   
Receiving objects:  18% (275/1468), 72.96 MiB | 139.00 KiB/s   
Receiving objects:  18% (275/1468), 73.01 MiB | 118.00 KiB/s   
Receiving objects:  18% (275/1468), 73.06 MiB | 109.00 KiB/s   
Receiving objects:  18% (275/1468), 73.17 MiB | 93.00 KiB/s   
Receiving objects:  18% (275/1468), 73.29 MiB | 88.00 KiB/s   
Receiving objects:  18% (275/1468), 73.36 MiB | 90.00 KiB/s   
Receiving objects:  18% (275/1468), 73.51 MiB | 95.00 KiB/s   
Receiving objects:  18% (275/1468), 73.57 MiB | 102.00 KiB/s   
Receiving objects:  18% (275/1468), 73.73 MiB | 112.00 KiB/s   
Receiving objects:  18% (275/1468), 73.82 MiB | 117.00 KiB/s   
Receiving objects:  18% (275/1468), 74.01 MiB | 126.00 KiB/s   
Receiving objects:  18% (275/1468), 74.20 MiB | 138.00 KiB/s   
Receiving objects:  18% (275/1468), 74.29 MiB | 140.00 KiB/s   
Receiving objects:  18% (275/1468), 74.48 MiB | 148.00 KiB/s   
Receiving objects:  18% (275/1468), 74.57 MiB | 153.00 KiB/s   
Receiving objects:  18% (275/1468), 74.76 MiB | 157.00 KiB/s   
Receiving objects:  18% (276/1468), 74.96 MiB | 163.00 KiB/s   
Receiving objects:  18% (276/1468), 75.11 MiB | 153.00 KiB/s   
Receiving objects:  18% (276/1468), 75.17 MiB | 150.00 KiB/s   
Receiving objects:  18% (276/1468), 75.32 MiB | 139.00 KiB/s   
Receiving objects:  18% (276/1468), 75.42 MiB | 134.00 KiB/s   
Receiving objects:  18% (276/1468), 75.51 MiB | 131.00 KiB/s   
Receiving objects:  19% (279/1468), 75.51 MiB | 131.00 KiB/s   
Receiving objects:  19% (280/1468), 75.70 MiB | 127.00 KiB/s   
Receiving objects:  19% (280/1468), 75.89 MiB | 138.00 KiB/s   
Receiving objects:  19% (280/1468), 76.17 MiB | 168.00 KiB/s   
Receiving objects:  19% (280/1468), 76.36 MiB | 190.00 KiB/s   
Receiving objects:  19% (280/1468), 76.92 MiB | 254.00 KiB/s   
Receiving objects:  19% (280/1468), 77.17 MiB | 272.00 KiB/s   
Receiving objects:  19% (280/1468), 77.36 MiB | 293.00 KiB/s   
Receiving objects:  19% (280/1468), 77.57 MiB | 296.00 KiB/s   
Receiving objects:  19% (280/1468), 77.75 MiB | 269.00 KiB/s   
Receiving objects:  19% (280/1468), 77.88 MiB | 250.00 KiB/s   
Receiving objects:  19% (280/1468), 78.07 MiB | 198.00 KiB/s   
Receiving objects:  19% (280/1468), 78.16 MiB | 179.00 KiB/s   
Receiving objects:  19% (280/1468), 78.35 MiB | 159.00 KiB/s   
Receiving objects:  19% (280/1468), 78.57 MiB | 165.00 KiB/s   
Receiving objects:  19% (280/1468), 78.79 MiB | 176.00 KiB/s   
Receiving objects:  19% (280/1468), 78.94 MiB | 185.00 KiB/s   
Receiving objects:  19% (280/1468), 79.16 MiB | 186.00 KiB/s   
Receiving objects:  19% (280/1468), 79.25 MiB | 180.00 KiB/s   
Receiving objects:  19% (280/1468), 79.41 MiB | 170.00 KiB/s   
Receiving objects:  19% (280/1468), 79.47 MiB | 158.00 KiB/s   
Receiving objects:  19% (280/1468), 79.66 MiB | 150.00 KiB/s   
Receiving objects:  19% (280/1468), 79.72 MiB | 138.00 KiB/s   
Receiving objects:  19% (280/1468), 79.88 MiB | 130.00 KiB/s   
Receiving objects:  19% (280/1468), 79.97 MiB | 131.00 KiB/s   
Receiving objects:  19% (280/1468), 80.16 MiB | 133.00 KiB/s   
Receiving objects:  19% (280/1468), 80.25 MiB | 138.00 KiB/s   
Receiving objects:  19% (280/1468), 80.44 MiB | 139.00 KiB/s   
Receiving objects:  19% (280/1468), 80.63 MiB | 147.00 KiB/s   
Receiving objects:  19% (280/1468), 80.75 MiB | 154.00 KiB/s   
Receiving objects:  19% (280/1468), 81.04 MiB | 177.00 KiB/s   
Receiving objects:  19% (280/1468), 81.38 MiB | 205.00 KiB/s   
Receiving objects:  19% (280/1468), 81.47 MiB | 208.00 KiB/s   
Receiving objects:  19% (280/1468), 81.66 MiB | 204.00 KiB/s   
Receiving objects:  19% (280/1468), 81.75 MiB | 199.00 KiB/s   
Receiving objects:  19% (280/1468), 81.94 MiB | 187.00 KiB/s   
Receiving objects:  19% (280/1468), 82.04 MiB | 179.00 KiB/s   
Receiving objects:  19% (280/1468), 82.25 MiB | 158.00 KiB/s   
Receiving objects:  19% (280/1468), 82.47 MiB | 161.00 KiB/s   
Receiving objects:  19% (280/1468), 82.57 MiB | 161.00 KiB/s   
Receiving objects:  19% (280/1468), 82.75 MiB | 164.00 KiB/s   
Receiving objects:  19% (280/1468), 82.85 MiB | 164.00 KiB/s   
Receiving objects:  19% (280/1468), 83.05 MiB | 162.00 KiB/s   
Receiving objects:  19% (280/1468), 83.16 MiB | 161.00 KiB/s   
Receiving objects:  19% (280/1468), 83.38 MiB | 154.00 KiB/s   
Receiving objects:  19% (280/1468), 83.44 MiB | 153.00 KiB/s   
Receiving objects:  19% (280/1468), 83.60 MiB | 148.00 KiB/s   
Receiving objects:  19% (280/1468), 83.79 MiB | 145.00 KiB/s   
Receiving objects:  19% (280/1468), 83.85 MiB | 141.00 KiB/s   
Receiving objects:  19% (280/1468), 84.04 MiB | 142.00 KiB/s   
Receiving objects:  19% (280/1468), 84.13 MiB | 140.00 KiB/s   
Receiving objects:  19% (280/1468), 84.29 MiB | 140.00 KiB/s   
Receiving objects:  19% (280/1468), 84.47 MiB | 147.00 KiB/s   
Receiving objects:  19% (280/1468), 84.66 MiB | 155.00 KiB/s   
Receiving objects:  19% (280/1468), 84.75 MiB | 155.00 KiB/s   
Receiving objects:  19% (280/1468), 84.94 MiB | 159.00 KiB/s   
Receiving objects:  19% (280/1468), 85.10 MiB | 163.00 KiB/s   
Receiving objects:  19% (280/1468), 85.29 MiB | 165.00 KiB/s   
Receiving objects:  19% (280/1468), 85.38 MiB | 161.00 KiB/s   
Receiving objects:  19% (280/1468), 85.57 MiB | 160.00 KiB/s   
Receiving objects:  19% (280/1468), 85.75 MiB | 161.00 KiB/s   
Receiving objects:  19% (280/1468), 85.97 MiB | 169.00 KiB/s   
Receiving objects:  19% (280/1468), 86.07 MiB | 169.00 KiB/s   
Receiving objects:  19% (280/1468), 86.32 MiB | 182.00 KiB/s   
Receiving objects:  19% (280/1468), 86.60 MiB | 205.00 KiB/s   
Receiving objects:  19% (280/1468), 86.72 MiB | 210.00 KiB/s   
Receiving objects:  19% (280/1468), 87.13 MiB | 254.00 KiB/s   
Receiving objects:  19% (280/1468), 87.54 MiB | 295.00 KiB/s   
Receiving objects:  19% (280/1468), 87.88 MiB | 316.00 KiB/s   
Receiving objects:  19% (280/1468), 88.00 MiB | 304.00 KiB/s   
Receiving objects:  19% (280/1468), 88.22 MiB | 283.00 KiB/s   
Receiving objects:  19% (280/1468), 88.35 MiB | 229.00 KiB/s   
Receiving objects:  19% (280/1468), 88.44 MiB | 205.00 KiB/s   
Receiving objects:  19% (280/1468), 88.60 MiB | 164.00 KiB/s   
Receiving objects:  19% (280/1468), 88.69 MiB | 145.00 KiB/s   
Receiving objects:  19% (280/1468), 88.85 MiB | 132.00 KiB/s   
Receiving objects:  19% (280/1468), 88.95 MiB | 131.00 KiB/s   
Receiving objects:  19% (280/1468), 89.10 MiB | 134.00 KiB/s   
Receiving objects:  19% (280/1468), 89.29 MiB | 138.00 KiB/s   
Receiving objects:  19% (280/1468), 89.38 MiB | 141.00 KiB/s   
Receiving objects:  19% (280/1468), 89.57 MiB | 149.00 KiB/s   
Receiving objects:  19% (280/1468), 89.79 MiB | 159.00 KiB/s   
Receiving objects:  19% (280/1468), 89.91 MiB | 167.00 KiB/s   
Receiving objects:  19% (280/1468), 90.22 MiB | 197.00 KiB/s   
Receiving objects:  19% (280/1468), 90.53 MiB | 226.00 KiB/s   
Receiving objects:  19% (280/1468), 90.90 MiB | 263.00 KiB/s   
Receiving objects:  19% (280/1468), 91.09 MiB | 282.00 KiB/s   
Receiving objects:  19% (280/1468), 91.46 MiB | 317.00 KiB/s   
Receiving objects:  19% (280/1468), 91.84 MiB | 328.00 KiB/s   
Receiving objects:  19% (280/1468), 92.18 MiB | 334.00 KiB/s   
Receiving objects:  19% (280/1468), 92.56 MiB | 329.00 KiB/s   
Receiving objects:  19% (280/1468), 92.71 MiB | 320.00 KiB/s   
Receiving objects:  19% (281/1468), 93.00 MiB | 295.00 KiB/s   
Receiving objects:  19% (281/1468), 93.31 MiB | 281.00 KiB/s   
Receiving objects:  19% (281/1468), 93.46 MiB | 279.00 KiB/s   
Receiving objects:  19% (285/1468), 93.75 MiB | 259.00 KiB/s   
Receiving objects:  19% (285/1468), 94.03 MiB | 256.00 KiB/s   
Receiving objects:  19% (285/1468), 94.34 MiB | 262.00 KiB/s   
Receiving objects:  19% (285/1468), 94.50 MiB | 259.00 KiB/s   
Receiving objects:  19% (285/1468), 94.78 MiB | 255.00 KiB/s   
Receiving objects:  19% (285/1468), 95.03 MiB | 258.00 KiB/s   
Receiving objects:  19% (285/1468), 95.09 MiB | 244.00 KiB/s   
Receiving objects:  19% (285/1468), 95.31 MiB | 227.00 KiB/s   
Receiving objects:  19% (285/1468), 95.56 MiB | 223.00 KiB/s   
Receiving objects:  19% (285/1468), 95.81 MiB | 219.00 KiB/s   
Receiving objects:  19% (285/1468), 96.06 MiB | 219.00 KiB/s   
Receiving objects:  19% (285/1468), 96.34 MiB | 234.00 KiB/s   
Receiving objects:  19% (285/1468), 96.50 MiB | 245.00 KiB/s   
Receiving objects:  19% (285/1468), 96.87 MiB | 272.00 KiB/s   
Receiving objects:  19% (285/1468), 97.31 MiB | 305.00 KiB/s   
Receiving objects:  19% (285/1468), 97.84 MiB | 366.00 KiB/s   
Receiving objects:  19% (285/1468), 98.43 MiB | 427.00 KiB/s   
Receiving objects:  19% (285/1468), 98.75 MiB | 461.00 KiB/s   
Receiving objects:  19% (285/1468), 99.28 MiB | 498.00 KiB/s   
Receiving objects:  19% (285/1468), 99.75 MiB | 508.00 KiB/s   
Receiving objects:  19% (285/1468), 100.03 MiB | 455.00 KiB/s   
Receiving objects:  19% (285/1468), 100.31 MiB | 396.00 KiB/s   
Receiving objects:  19% (285/1468), 100.62 MiB | 348.00 KiB/s   
Receiving objects:  19% (285/1468), 100.96 MiB | 302.00 KiB/s   
Receiving objects:  19% (285/1468), 101.31 MiB | 301.00 KiB/s   
Receiving objects:  19% (285/1468), 101.50 MiB | 295.00 KiB/s   
Receiving objects:  19% (285/1468), 101.81 MiB | 301.00 KiB/s   
Receiving objects:  19% (285/1468), 102.00 MiB | 302.00 KiB/s   
Receiving objects:  19% (285/1468), 102.25 MiB | 287.00 KiB/s   
Receiving objects:  19% (285/1468), 102.56 MiB | 279.00 KiB/s   
Receiving objects:  19% (285/1468), 102.86 MiB | 284.00 KiB/s   
Receiving objects:  19% (285/1468), 103.18 MiB | 277.00 KiB/s   
Receiving objects:  19% (285/1468), 103.37 MiB | 278.00 KiB/s   
Receiving objects:  19% (285/1468), 103.74 MiB | 302.00 KiB/s   
Receiving objects:  19% (285/1468), 104.11 MiB | 307.00 KiB/s   
Receiving objects:  19% (285/1468), 104.49 MiB | 316.00 KiB/s   
Receiving objects:  19% (285/1468), 104.71 MiB | 326.00 KiB/s   
Receiving objects:  19% (285/1468), 105.14 MiB | 354.00 KiB/s   
Receiving objects:  19% (285/1468), 105.58 MiB | 365.00 KiB/s   
Receiving objects:  19% (285/1468), 105.93 MiB | 358.00 KiB/s   
Receiving objects:  19% (285/1468), 106.11 MiB | 362.00 KiB/s   
Receiving objects:  19% (285/1468), 106.49 MiB | 362.00 KiB/s   
Receiving objects:  19% (285/1468), 106.89 MiB | 351.00 KiB/s   
Receiving objects:  19% (285/1468), 107.27 MiB | 350.00 KiB/s   
Receiving objects:  19% (285/1468), 107.64 MiB | 362.00 KiB/s   
Receiving objects:  19% (285/1468), 107.93 MiB | 337.00 KiB/s   
Receiving objects:  19% (285/1468), 108.08 MiB | 328.00 KiB/s   
Receiving objects:  19% (285/1468), 108.39 MiB | 307.00 KiB/s   
Receiving objects:  19% (285/1468), 108.64 MiB | 277.00 KiB/s   
Receiving objects:  19% (285/1468), 108.80 MiB | 266.00 KiB/s   
Receiving objects:  19% (285/1468), 109.08 MiB | 252.00 KiB/s   
Receiving objects:  19% (285/1468), 109.39 MiB | 260.00 KiB/s   
Receiving objects:  19% (285/1468), 109.61 MiB | 248.00 KiB/s   
Receiving objects:  19% (285/1468), 109.89 MiB | 253.00 KiB/s   
Receiving objects:  19% (285/1468), 110.05 MiB | 255.00 KiB/s   
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2016)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1735)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:420)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:629)
	at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1146)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1186)
	at hudson.scm.SCM.checkout(SCM.java:504)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
	at hudson.model.Run.execute(Run.java:1819)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:97)
	at hudson.model.Executor.run(Executor.java:429)
ERROR: Error cloning remote repo 'origin'
Setting status of 9d35528b460d552ec1bd9a9eaed4fa53ec58f79b to FAILURE with url http://jenkins.leapmind.local:8080/job/blueoil_dlk_test/289/console and message: 'Failure.
 '
Using context: [dlk] jenkins test
Finished: FAILURE

Reproduce Ternary Weight Networks

Reproduce Ternary Weight Networks

Background

We want to try to ternary weights instead of 1 bit weights, to get more accuracy.
I implemented the quantization method of Ternary Weight Networks, but I didn't verify the method is correct, yet.

paper: https://arxiv.org/pdf/1605.04711.pdf
implemented method: https://github.com/blue-oil/blueoil/blob/master/lmnet/lmnet/quantizations/ternary.py#L97-L137

Task

In order to verify, try to reproduce the experiments following the paper.
They trained VGG-7 network with Cifar10 dataset, also trained the ResNet18 with ImageNet dataset.
We have to verify that by using either VGG-7 or ResNet18 network trained full precision and ternarized, the both results accuracy is the almost same as the paper.

add triangular learning rate

Recently I read some articles that uses triangular learning rate or cyclical learning rate.

I tested on my local environment, triangular learning rate tends to achieve better accuracy than current 2 steps-decay, even if I add 1 epoch warm up manually.

On the other hand, we found a problem with current learning rate schedulings, we cannot train wider_face object detection network. More precisely, we can train, but the mAP is not good (roughly 40%, which is worse compared to hand tuned 55% mAP.)

I'd like to have some experiment around triangular learning rate and add best configuration as our choice. But unfortunately, I don't have enough time, so I just leave this comment 😢

semantic segmentation support

We're planning support of semantic segmentation task.

Actually, internally we've already supported, but there're some remaining problems

  • Current implementation does not work on FPGAs, since it breaks the channel number restriction.
  • Current implementation is very slow, since using 3x3 conv for the 1st layer. We have several choice to solve the problem, but I don't know which one is the better choice:
    • replace 3x3 conv with 1x1 conv, insert 3x3 quantized conv as 2nd conv layer.
    • insert space2depth before the 1st layer.

Update tensorflow version

Update tensorflow version.
Currently we use so old version of tensorflow 1.4, we should update version to latest tensorflow.

Deliver docker image

Purpose

We can provide Blueoil with fixed docker image.
And this makes easy to use Blueoil without source downloads and docker build.
We already set our first version v0.1.0, the time is coming for providing docker image.

Which repository

Blueoil is OSS, so it is better to use dockerhub, everyone can access there.

How to deploy

Because of our Blueoil direstory structure, we cannot use auto-build of dockerhub.
And dockerhub's auto-build is so slow, we should use another deployment.
I am considering to use circleci or jenkins.

model variations

Motivation:

Currently, we have just a few network models for each tasks. However, sometimes people want to use wider model to increase accuracy, sometimes people want to use thinner model to reduce latency.

We'd like to provide some model variations, to fulfill their requirement.

What should be implemented

To be determined.

Missing Semantic Segmentation Interface

Blueoil has Semantic Segmentation implementation but not available from blueoil.sh. We need to add Semantic Segmentation support for blueoil.sh and blueoil directory's scripts.

Here is the list of TODO

  • [PR1] Test dataset files.
    • Data.
    • Document.
  • [PR2] Implement dataset class.
    • Introduce CamvidBase class.
    • Camvid class inhert CamvidBase class.
    • CamvidCustom class Imprementation.
    • Unit Test for each classes.
  • [PR3] Interface for blueoil
    • Config template file.
    • blueoil directory python scripts.
    • blueoil_test.sh
    • Config files
    • Fix run.py inference script
  • [PR6] Tutorial for Semantic Segmentation
    • Documentation
    • Manual test from other developer

Use Advanced SIMD on AArch64

We should use Advanced SIMD instead of NEON for performance.
Performance gain is probably not so bad.

And we have to change compile flag also (I had overlooked).
It may be necessary to consider whether compatibility between NEON and Advanced SIMD is possible.

Pre-compute batch normalization scale and shift

Batch normalization learnt parameters are gamma, beta, running expectation and running variance. During inference, these parameters are constants but for some reason we still computing the final scaling factor and shift during inference:

void func_BatchNormalization(T_FLOAT input[], T_FLOAT gamma[], T_FLOAT beta[],
                             T_FLOAT mean[], T_FLOAT variance[],
                             T_FLOAT epsilon, T_FLOAT output[],
                             T_UINT out_height, T_UINT out_width,
                             T_UINT out_depth) {
  Measurement::Start("BatchNorm");

  // temporary fix: will be replaced by pre-allocated one
  T_FLOAT *scale = new float[out_depth];
  T_FLOAT *shift = new float[out_depth];
  T_UINT size = out_height * out_width;

  float32x4_t eps_batch = vdupq_n_f32(epsilon);
  float32x4_t scale_b, shift_b;

  int i = 0;
  for (; i <= static_cast<int>(out_depth) - 4; i += 4) {
    float32x4_t gamma_batch = vld1q_f32(&gamma[i]);
    float32x4_t var_batch = vld1q_f32(&variance[i]);
    float32x4_t beta_batch = vld1q_f32(&beta[i]);
    float32x4_t mu_batch = vld1q_f32(&mean[i]);

    scale_b = vaddq_f32(var_batch, eps_batch);
    float32x4_t rsqrt_est = vrsqrteq_f32(scale_b);
    rsqrt_est = vrsqrtsq_f32(scale_b * rsqrt_est, rsqrt_est) * rsqrt_est;
    scale_b = vrsqrtsq_f32(scale_b * rsqrt_est, rsqrt_est) * rsqrt_est;

    scale_b = vmulq_f32(scale_b, gamma_batch);
    shift_b = vmlsq_f32(beta_batch, scale_b, mu_batch);
    vst1q_f32(&scale[i], scale_b);
    vst1q_f32(&shift[i], shift_b);
  }

  for (; i < static_cast<int>(out_depth); i++) {
    scale[i] = gamma[i] * (1.0 / std::sqrt(variance[i] + epsilon));
    shift[i] = beta[i] - (scale[i] * mean[i]);
  }
... // until here is only for computing constants shift and scale from other constants

It is possible, in DLK optimizer phase, to pre-compute this values and just save the shift and scale factors. During inference, this is the only code required (simplified, maybe use NEON and more than one CPU core improves speed):

    for (; d < out_depth; d++) {
      *out_temp++ = *in_temp++ * scale[d] + shift[d];
    }

customization of learning rate

Currently, Blueoil doesn't support customization of learning rate. It would be very nice if we can customize learning rate, since it is a very important hyperparameter.

For example, internally, we've used some learning rate scheduling, like tf.train.piecewise_constant, tf.train.polynomial_decay.

Add example config files and source codes

In orde to easily start blueoil for new user, we have tutorial documentations.
Current tutorial at documentation site have the chapter of generating config, but it occur problems.

  • The config specification changes often in our current stage, It takes cost to need to change not only config specification document but also tutorial documents. Idealy, the tutorials need to assure to work well to not lost new user, but currently, there are no test.
  • Can't grasp how to use blueoil from source code, Need to read carefully the tutorials.

To resolve these problems,
create examples directories, and add config file or some codes to do tutorials like theses.

examples/classification/config.yml
examples/object_detection/config.yml
examples/object_detection/prepare_dataset.py

try CornerNet

CornerNet is a recently proposed neural network for object detection.

http://openaccess.thecvf.com/content_ECCV_2018/html/Hei_Law_CornerNet_Detecting_Objects_ECCV_2018_paper.html

The idea of CornerNet looks very interesting. They don't use anchor boxes. They use 2 heatmaps to predict "top-left corner" and "bottom-right" corner. Though it looks a little bit difficult to implement on Blueoil, since it requires a novel operator "corner pooling", but at least it would be worth trying.

  • implement corner pooling on lmnet
  • implement hour glass network (backbone network)
  • implement extraction network
  • implement loss function of CornerNet on lmnet
  • compare result vs YOLOv2 on Pascal VOC
  • compare result vs YOLOv2 on MS COCO
  • implement slimmer version of CornetNet
  • implement corner pooling on dlk
  • implement post processing

This task would be very interesting, but unfortunately I don't enough time to implement...

Generate Output Template for GPU Model

Background

Currently, we only have output models for CPU and FPGA to run prediction on specific devices. But some users want to run prediction using GPU as well. The objective is to generate a file that can be executed on GPU using a trained model from blueoil then enable DeLTA-Lite to download it from the User Interface.

Plan

  • Create or modify python script that can run prediction on GPU (run.py)
  • Implement pre-processing and post-processing for GPU model
  • Determine the folder/file structure of the output
  • Create a python script that has a camera demo for GPU (server and agent)

Tests failed with uncertain errors

My pull request #130 failed with uncertain errors, which is pasted below.
http://jenkins.leapmind.local:8080/job/blueoil_dlk_test/675/console

After I observed above, I'd tried to look for the reason but I couldn't find it.
Therefore, I tried to run the test in my local with the current blueoil master which I cloned just now.
However I still faced the same errors. it seems weird.

is there anyone who knows about this??

======================================================================
FAIL: test_all_configuration:17
16, {'model_path': 'examples/classification/lmnet_quantize_cifar10_space_to_dep (test_code_generation.TestCodeGeneration)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/blueoil/dlk/tests/test_code_generation.py", line 267, in test_all_configuration
    self.codegen_cpu(test_id=i, **configuration)
  File "/home/blueoil/dlk/tests/test_code_generation.py", line 473, in codegen_cpu
    msg=f"Test failed: {percent_failed:.3f}% of the values does not match")
AssertionError: False is not true : Test failed: 100.000% of the values does not match

======================================================================
FAIL: test_all_configuration:18
17, {'model_path': 'examples/object_detection/fyolo_quantize_4_v4', 'expected_o (test_code_generation.TestCodeGeneration)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/blueoil/dlk/tests/test_code_generation.py", line 267, in test_all_configuration
    self.codegen_cpu(test_id=i, **configuration)
  File "/home/blueoil/dlk/tests/test_code_generation.py", line 473, in codegen_cpu
    msg=f"Test failed: {percent_failed:.3f}% of the values does not match")
AssertionError: False is not true : Test failed: 100.000% of the values does not match

ARM binary bug(?)

Original GCC binary is probably buggy.
These

pack_input_to_qwords
quantized-kn2row
quantized_matrix_multiplication
quantized_ohwi_to_hwoi

are missing.

execution time
before (GCC)

root@DE10_NANO:~# ./lm_arm.elf input.npy output.npy 
-------------------------------------------------------------
Comparison: Default network test  succeeded!!!
-------------------------------------------------------------
ApplyThresholds,129743,60370,18041,8221,  sum:216.375ms
AveragePool,88,  sum:0.088ms
BatchNorm,5259,133,  sum:5.392ms
Convolution,160444,2118,  sum:162.562ms
ExtractImagePatches,3909,908,357,  sum:5.174ms
QTZ_linear_mid_tread_half,6809,  sum:6.809ms
QuantizedConv2D,6920,  sum:6.92ms
QuantizedConv2D_ApplyScalingFactor,195,  sum:0.195ms
ReLu,164,  sum:0.164ms
SoftMax,132,  sum:0.132ms
TotalInitTime,38875,  sum:38.875ms
TotalRunTime,727769,  sum:727.769ms
kn2row,159046,  sum:159.046ms
kn2row-1x1,2109,  sum:2.109ms
kn2row-buf,4,  sum:0.004ms
matrix_multiplication,107636,2099,  sum:109.735ms
matrix_shift_add_f1,3533,  sum:3.533ms
matrix_shift_add_f2,47828,  sum:47.828ms
matrix_transpose (row_major),25,  sum:0.025ms

after

root@DE10_NANO:~# ./lm_arm.elf input.npy output.npy 
-------------------------------------------------------------
Comparison: Default network test  succeeded!!!
-------------------------------------------------------------
ApplyThresholds,129287,59816,17804,8256,  sum:215.163ms
AveragePool,201,  sum:0.201ms
BatchNorm,6333,166,  sum:6.499ms
Convolution,126709,2100,  sum:128.809ms
ExtractImagePatches,4275,884,352,  sum:5.511ms
QTZ_linear_mid_tread_half,8011,  sum:8.011ms
QuantizedConv2D,15747,  sum:15.747ms
QuantizedConv2D_ApplyScalingFactor,317,  sum:0.317ms
ReLu,154,  sum:0.154ms
SoftMax,16,  sum:0.016ms
TotalInitTime,15021,  sum:15.021ms
TotalRunTime,1.58807e+06,  sum:1588.07ms
kn2row,125490,  sum:125.49ms
kn2row-1x1,2095,  sum:2.095ms
kn2row-buf,4,  sum:0.004ms
matrix_multiplication,69543,2085,  sum:71.628ms
matrix_shift_add1,4683,4159,2177,2048,  sum:13.067ms
matrix_shift_add2,141684,70508,34615,17354,  sum:264.161ms
matrix_shift_add_f1,3352,  sum:3.352ms
matrix_shift_add_f2,52553,  sum:52.553ms
matrix_transpose (row_major),20,  sum:0.02ms
pack_input_to_qwords,2141,4250,2127,985,380,  sum:9.883ms
quantized-kn2row,589501,521899,169143,125074,15722,  sum:1421.34ms
quantized_matrix_multiplication,275754,364921,103367,91567,15289,  sum:850.898ms
quantized_ohwi_to_hwoi,30,195,45,160,20,  sum:0.45ms

benchmark configuration

network
 LmnetV1Quantize
dataset I used
 Caltech101
training configurattion
 epoch is 2. other is default.
hardware
 DE10-nano
how many times you run the benchmark
 As much as average average value is known (around 10 or more)

Compiler (before)

konda@leapmind-server-08:~/work/blueoil$ /usr/bin/arm-linux-gnueabihf-gcc-5 -v
Using built-in specs.
COLLECT_GCC=/usr/bin/arm-linux-gnueabihf-gcc-5
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabihf/5/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-armhf-cross/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-armhf-cross --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-armhf-cross --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libgcj --enable-objc-gc --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-multilib --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- --includedir=/usr/arm-linux-gnueabihf/include
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 

Compiler (after)

llvm pre-built binary
http://releases.llvm.org/7.0.0/clang+llvm-7.0.0-armv7a-linux-gnueabihf.tar.xz

And It's may be a compiler problem.

`train` command with data augmentation options failed

I tried to execute train command with data augmentation options but it failed. I think generate_lmnet_config.py is not working correctly because there was a SyntaxError in lmnet config file which is generated by the script.

Error messages:

Traceback (most recent call last):
  File "blueoil/blueoil_train.py", line 51, in <module>
  ...
  File "/home/blueoil/test.py", line 112
    RandomErasingForDetection(probability=0.5sl=0.02sh=0.2r1=0.3content_type='mean'mean=[125, 122, 114]i_a=Trueo_a=True),
                                              ^
SyntaxError: invalid syntax
ERROR: Training exited with a non-zero status

The Config file I tried:

task_type: object_detection
network_name: LMFYoloQuantize

dataset:
  format: DeLTA-Mark for Object Detection
  train_path: /mnt/dataset/training
  test_path: /mnt/dataset/test

trainer:
  batch_size: 16
  epochs: 100
  learning_rate_schedule: constant
  initial_learning_rate: 0.001

network:
  quantize_first_convolution: yes

common:
  image_size:
    - 128  # height
    - 128  # width

  # set pretrain model name. currently, this feature is not supported, always ignored.
  pretrain_model: false

  # enable dataset prefetch, set false if weired problem happens
  dataset_prefetch: true

  data_augmentation:
    - RandomErasingForDetection:
        - probability: 0.5
        - sl: 0.02
        - sh: 0.2
        - r1: 0.3
        - content_type: mean
        - mean: [125, 122, 114]
        - i_a: True
        - o_a: True

should we separate into several repositories?

Current blueoil is too large and hard to use. Also CI test is too heavy, doc is too complex.

In my opinion, current blueoil should be separated into 3 parts, or 2.
blueoil should only contain complier.
blueoil-quantization contains binary.py and linear.py. Let user to import and use them in their codes.

And then, something like blueoil-net, do training. (Or skip this. Let users to make pb by themselves. Just need to make sure all ops in graph are supported by blueoil and quantization ops are in graph. Use pre-checker to check the pb.)

As user, prepare a pb which use blueoil-quantization and compile it by blueoil should be a good idea.

web based demo script

Current demo script is using X window system. If someone want to use the demo, he/she need to install X window system, which is not impossible, but it's not a comfortable on Windows PCs.

If we can have a demo scripts which uses just only web based technologies (like html canvas), it would be easier to use than current X based demo.

Document deploy was failed on circleci

The deploy part was failed on CircleCI.
The error log is below

Build-agent version 0.1.1073-1f69f340 (2018-11-20T18:07:03+0000)
Starting container circleci/node:7.10
  image cache not found on this host, downloading circleci/node:7.10

  Error pulling image circleci/node:7.10: Error response from daemon: Get https://registry-1.docker.io/v2/circleci/node/manifests/7.10: received unexpected HTTP status: 503 Service Unavailable... retrying
  image cache not found on this host, downloading circleci/node:7.10

  Error pulling image circleci/node:7.10: Error response from daemon: Get https://registry-1.docker.io/v2/circleci/node/manifests/7.10: received unexpected HTTP status: 503 Service Unavailable... retrying
  image cache not found on this host, downloading circleci/node:7.10

  Error pulling image circleci/node:7.10: Error response from daemon: Get https://registry-1.docker.io/v2/circleci/node/manifests/7.10: received unexpected HTTP status: 503 Service Unavailable... retrying
  image cache not found on this host, downloading circleci/node:7.10

  Error pulling image circleci/node:7.10: Error response from daemon: Get https://registry-1.docker.io/v2/circleci/node/manifests/7.10: received unexpected HTTP status: 503 Service Unavailable... retrying
  image cache not found on this host, downloading circleci/node:7.10

  Error pulling image circleci/node:7.10: Error response from daemon: Get https://registry-1.docker.io/v2/circleci/node/manifests/7.10: received unexpected HTTP status: 503 Service Unavailable... retrying
  image cache not found on this host, downloading circleci/node:7.10

Error response from daemon: Get https://registry-1.docker.io/v2/circleci/node/manifests/7.10: received unexpected HTTP status: 503 Service Unavailable

This was occurred because tag was removed from docker repo of circleci/node.
So we should change to use another tags for deploying.

Generic quantized multiplication is probably wrong

in src file:
 src/matrix/generic/quantized_multiplication.cpp

There are lines like follows.

            if (A.rows() - i > 0) {★
              T_UINT a = *A.data(i+0, j+j2);
              if (end - k > 0) CONV(0, 0)
              if (end - k > 1) CONV(0, 1)
              if (end - k > 2) CONV(0, 2)
              if (end - k > 3) CONV(0, 3)
            }
            if (A.rows() - i > 0) {★
              T_UINT a = *A.data(i+1, j+j2);
              if (end - k > 0) CONV(1, 0)
              if (end - k > 1) CONV(1, 1)
              if (end - k > 2) CONV(1, 2)
              if (end - k > 3) CONV(1, 3)
            }
            if (A.rows() - i > 0) {★
              T_UINT a = *A.data(i+2, j+j2);
              if (end - k > 0) CONV(2, 0)
              if (end - k > 1) CONV(2, 1)
              if (end - k > 2) CONV(2, 2)
              if (end - k > 3) CONV(2, 3)
            }
            if (A.rows() - i > 0) {★
              T_UINT a = *A.data(i+3, j+j2);
              if (end - k > 0) CONV(3, 0)
              if (end - k > 1) CONV(3, 1)
              if (end - k > 2) CONV(3, 2)
              if (end - k > 3) CONV(3, 3)
            }

It is not certain to me, but it seems to be an error in the branching condition.

(should be > 0, > 1, > 2, > 3?)

Copy kernels and thresholds during the init() step

We can improve inference time by copying the kernels and thresholds into the DDR region shared with the FPGA during the init() step.

Proof: if we pre-copy we get:

BatchNorm,9674,182,  sum:9.856ms
Convolution,9586,1322,  sum:10.908ms
ExtractImagePatches,864,254,122,59,26,10,13,12,  sum:1.36ms
Kernel transpose NHWC to HWNoCNi,18,11,20,52,336,541,237,7,6,4,2220,240,234,206,230,  sum:4.362ms
Maximum,139,  sum:0.139ms
Mul,71,  sum:0.071ms
Packing input for kn2row,3301,712,238,110,74,39,15,40,108,189,70,23,14,20,14,  sum:4.967ms
QConv2D with kn2row,13963,3364,1458,793,686,415,326,41,66,203,1568,245,326,245,297,  sum:23.996ms
QTZ_linear_mid_tread_half,9677,  sum:9.677ms
QuantizedConv2D,677,  sum:0.677ms
QuantizedConv2D_ApplyScalingFactor,143,  sum:0.143ms
TotalInitTime,33319,  sum:33.319ms

TotalRunTime,78409,  sum:78.409ms

func_ConcatOnDepth,69,  sum:0.069ms
kn2row-1x1,9575,1315,  sum:10.89ms
matrix_multiplication,9561,1307,  sum:10.868ms
matrix_transpose (row_major),59,  sum:0.059ms
pack_input_to_qwords,3285,702,228,102,64,33,9,33,99,183,64,16,8,14,8,  sum:4.848ms

Originally, if we copy each time:

BatchNorm,9909,169,  sum:10.078ms
Convolution,9467,1315,  sum:10.782ms
ExtractImagePatches,901,275,134,64,27,11,10,12,  sum:1.434ms
Kernel transpose NHWC to HWNoCNi,19,10,21,53,288,579,231,6,6,4,2266,223,232,205,224,  sum:4.367ms
Maximum,137,  sum:0.137ms
Mul,72,  sum:0.072ms
Packing input for kn2row,3304,753,262,117,76,40,16,46,127,211,72,23,15,22,15,  sum:5.099ms
QConv2D with kn2row,14063,3540,1604,1000,1218,1331,854,136,156,297,4945,744,855,740,720,  sum:32.203ms
QTZ_linear_mid_tread_half,9705,  sum:9.705ms
QuantizedConv2D,1109,  sum:1.109ms
QuantizedConv2D_ApplyScalingFactor,144,  sum:0.144ms
TotalInitTime,33554,  sum:33.554ms

TotalRunTime,87315,  sum:87.315ms

func_ConcatOnDepth,74,  sum:0.074ms
kn2row-1x1,9457,1308,  sum:10.765ms
matrix_multiplication,9445,1299,  sum:10.744ms
matrix_transpose (row_major),59,  sum:0.059ms
pack_input_to_qwords,3288,743,250,110,66,34,9,39,117,205,66,15,9,15,8,  sum:4.974ms

Coordinates of gt_boxes are invariant after augmentation related to coordinates transformation

Coordinates of gt_boxes are invariant after augmentation related to coordinates transformation, "Pad", "Rotate" and "Crop".
Here is the examples on "Pad". The coordinates of gt_boxes and shifted images are not match:
2018-12-05 12 40 26
2018-12-05 12 40 18

On "Pad", I fixed it by adding the code to __call__method like this:

        gt_boxes[:,0] = gt_boxes[:,0]+self.left
        gt_boxes[:,1] = gt_boxes[:,1]+self.top

and modifiiied the argument and the return value accordingly.

Then, it works well.

Likewise, I think "Rotate" and "Crop" should be modified accordingly.

Uses too many registers (performance degradation)

in src file:
 src/matrix/generic/quantized_multiplication.cpp

We are using too many variables as follows.

      BIN_CONV_OUTPUT r00 = 0;
      BIN_CONV_OUTPUT r01 = 0;
      BIN_CONV_OUTPUT r02 = 0;
      BIN_CONV_OUTPUT r03 = 0;
      BIN_CONV_OUTPUT r10 = 0;
      BIN_CONV_OUTPUT r11 = 0;
      BIN_CONV_OUTPUT r12 = 0;
      BIN_CONV_OUTPUT r13 = 0;
      BIN_CONV_OUTPUT r20 = 0;
      BIN_CONV_OUTPUT r21 = 0;
      BIN_CONV_OUTPUT r22 = 0;
      BIN_CONV_OUTPUT r23 = 0;
      BIN_CONV_OUTPUT r30 = 0;
      BIN_CONV_OUTPUT r31 = 0;
      BIN_CONV_OUTPUT r32 = 0;
      BIN_CONV_OUTPUT r33 = 0;

So,

#define CONV(i, k) r##i##k += pop_count(~(a ^ b##k##0)) + 2 * pop_count(~(a ^ b##k##1)) - 3 * (pop_count(~a));

this macro is still costly. (because of register spills)

If we can use streaming store, it may improve.
But, If we aim high performance using generic code, we should rewrite code.

bit shift bug

https://github.com/blue-oil/blueoil/blob/4e6abd97f5f740af89484c08a7d69934e58c2d56/dlk/python/dlk/templates/src/pack_input_to_qwords.cpp#L50

In this line, I think that we should shift with 15.

tag 0.2.1 has the same problem.

https://github.com/blue-oil/blueoil/blob/v0.2.1/dlk/python/dlk/templates/src/pack_input_to_qwords.cpp#L50

generic code type issue (ARM binary)

As for arm binary, std::memset type causes an error.

src/func/impl/generic/quantized_conv2d_kn2row.cpp:138:17: error: cannot initialize a parameter of type
      'void *' with an lvalue of type 'BIN_CONV_OUTPUT *' (aka 'volatile short *')
    std::memset(kn2row_buf, 0, bufsize);
                ^~~~~~~~~~
/usr/arm-linux-gnueabihf/include/string.h:62:28: note: passing argument to parameter '__s' here
extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1));

It may occur when you use llvm7 or below.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.