tensorflow-onnx
tensorflow-onnx copied to clipboard
inference result error with vgg classification
Describe
train a VGG classification model, and convert ckpt to pb model.
try to inference pb model, and result correct.
then python -m tf2onnx.convert --graphdef model.pb --output model.onnx --inputs input:0 --outputs output:0 convert pb to onnx successful, but inference error, all results are label 0.
Information
- OS Platform and Distribution (e.g., Linux Ubuntu 16.04): windows10
- INFO - tf2onnx: inputs: ['input:0']
- INFO - tf2onnx: outputs: ['output:0']
- INFO - tf2onnx.tfonnx: Using tensorflow=1.13.1, onnx=1.8.0, tf2onnx=1.9.3/1190aa
- INFO - tf2onnx.tfonnx: Using opset <onnx, 9>
Model ` def build_model(input, num_class, keep_prob=0.9, is_train=True):
with slim.arg_scope([slim.conv2d, slim.fully_connected], activation_fn=tf.nn.relu):
net = input
# net = slim.repeat(net, 1, slim.conv2d, 32, [3, 3], scope='conv1')
net = slim.conv2d(net, 32, [3, 3], scope='conv1_1')
net = slim.max_pool2d(net, [2, 2], scope='pool1', stride=2)
# net = slim.repeat(net, 2, slim.conv2d, 64, [3, 3], scope='conv2')
net = slim.conv2d(net, 64, [3, 3], scope='conv2_1')
net = slim.conv2d(net, 64, [3, 3], scope='conv2_2')
net = slim.max_pool2d(net, [2, 2], scope='pool2', stride=2)
# net = slim.repeat(net, 3, slim.conv2d, 128, [3, 3], scope='conv3')
net = slim.conv2d(net, 128, [3, 3], scope='conv3_1')
net = slim.conv2d(net, 128, [3, 3], scope='conv3_2')
net = slim.conv2d(net, 128, [3, 3], scope='conv3_3')
net = slim.max_pool2d(net, [2, 2], scope='pool3', stride=2)
# net = slim.repeat(net, 3, slim.conv2d, 256, [3, 3], scope='conv4')
net = slim.conv2d(net, 256, [3, 3], scope='conv4_1')
net = slim.conv2d(net, 256, [3, 3], scope='conv4_2')
net = slim.conv2d(net, 256, [3, 3], scope='conv4_3')
net = slim.max_pool2d(net, [2, 2], scope='pool4', stride=2)
# net = slim.repeat(net, 2, slim.conv2d, 512, [3, 3], scope='conv5')
net = slim.conv2d(net, 512, [3, 3], scope='conv5_1')
net = slim.conv2d(net, 512, [3, 3], scope='conv5_2')
net = slim.max_pool2d(net, [2, 2], scope='pool5', stride=2)
net = slim.flatten(net, scope='flatten')
net = slim.dropout(net, keep_prob=keep_prob, is_training=is_train)
net = slim.fully_connected(net, 1024, scope='fc1')
net = slim.fully_connected(net, 64, scope='fc2')
net = slim.fully_connected(net, num_class, activation_fn=None, scope='fc3')
if not is_train:
net = tf.nn.softmax(net, name="output")
return net
`
Files code: drive.google ckpt: drive.google pb: drive.google onnx: drive.google