Scripts to dump TensorFlow Inception V3 weights and to reconstruct the network in Torch.
The approach is inspired by soumith/inception.torch.
dump_filters.py
: a Python/TensorFlow script to dump all the weights of Inception V3inceptionv3.lua
: reads the weights and builds the Torch binary equivalent networkexample.lua
: example use of the Torch network
Here are instructions using Docker:
# From the host
docker run -it \
-p 8888:8888 \
-v /home/myuser/code/inception-v3.torch/dump_filters.py:/root/dump_filters.py \
-v /home/myuser/data/dump:/root/dump \
gcr.io/tensorflow/tensorflow
# From the container
apt-get update
apt-get install -y libhdf5-dev
pip install h5py
python dump_filters.py
If you have already installed TensorFlow, just run dump_filters.py
and the
script will generate a directory dump
with all the filters.
Install pre-requisite:
luarocks install hdf5
Given that the filters are dumped in /home/myuser/data/dump
, execute:
luajit inceptionv3.lua -i /home/myuser/data/dump \
-o /home/myuser/networks/inceptionv3.net
-b cudnn
The parameter -b
sets the backend to use: nn
, cunn
, or cudnn
. The produced binary Torch model will
be saved in /home/myuser/networks/inceptionv3.net
.
Test it with an image as follows:
luajit example.lua -m /home/myuser/networks/inceptionv3.net \
-b cudnn \
-i myimage.jpg \
-s synsets.txt
With TensorFlow example image you should obtain a result like this:
RESULTS (top-5):
----------------
score = 0.847576: n02510455 giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (170)
score = 0.020494: n02500267 indri, indris, Indri indri, Indri brevicaudatus (76)
score = 0.003694: n02509815 lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (8)
score = 0.001323: n13044778 earthstar (879)
score = 0.001301: n07760859 custard apple (326)