tensorflow-onnx icon indicating copy to clipboard operation
tensorflow-onnx copied to clipboard

inference result error with vgg classification

Open nistarlwc opened this issue 3 years ago • 0 comments

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

nistarlwc avatar Mar 08 '22 02:03 nistarlwc