两个tensorflow初始模型'inception_v3_2016_08_28.tar.gz'和'classify_image_graph_def.pb'有什么区别?

时间:2017-04-06 05:27:40

标签: python tensorflow deep-learning tf-slim

我尝试了两种用于转移学习的张量流模型。模型是

  1. inception_v3_2016_08_28.tar.gz - 来自tensorflow-models
  2. classify_image_graph_def.pb - 附带tensorflow image_retraining代码。
  3. 但我得到的结果完全不同。第二个模型的表现比第一个更好。这是预期的吗?第一个模型的准确度为57%,而第二个模型的准确度为80%。

    第一个模型是检查点文件。对于转移学习,我已将检查点文件转换为protobuf文件。然后使用与tensorflow一起出现的python代码retrain.py来进行再训练。以下代码用于将检查点文件转换为protobuf文件。

    checkpoint_file = '../check_points/inception_v3.ckpt'
    decode_jpeg_data = tf.placeholder(tf.string)
    decode_jpeg = tf.image.decode_jpeg(decode_jpeg_data, channels=3, dct_method="INTEGER_ACCURATE")
    if decode_jpeg.dtype != tf.float32:
      decode_jpeg = tf.image.convert_image_dtype(decode_jpeg, dtype=tf.float32)
    image_ = tf.expand_dims(decode_jpeg, 0)
    image = tf.image.resize_bicubic(image_, [299, 299], align_corners=True)
    scaled_input_tensor = tf.scalar_mul((1.0/255), image)
    scaled_input_tensor = tf.subtract(scaled_input_tensor, 0.5)
    scaled_input_tensor = tf.multiply(scaled_input_tensor, 2.0)
    
    # loading the inception graph
    arg_scope = inception_v3_arg_scope()
    with slim.arg_scope(arg_scope):
      logits, end_points = inception_v3(inputs=scaled_input_tensor, is_training=False, num_classes=1001)
    saver = tf.train.Saver()
    sess = tf.Session()
    saver.restore(sess, checkpoint_file)
    with gfile.FastGFile('./models/inceptionv3.pb', 'wb') as f:
        f.write(output_graph_def.SerializeToString())
    

0 个答案:

没有答案