Skip to content

inference result error with vgg classification #1876

@nistarlwc

Description

@nistarlwc

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions