美文网首页
ByteBuffer is not a valid flatbu

ByteBuffer is not a valid flatbu

作者: miniminiming | 来源:发表于2019-12-10 16:31 被阅读0次

    在Android手机上使用tensorflow训练出来的猫狗识别模型时,遇到如题目的问题

    一加载模型,就报错,查了很多原因,通过上面的V3和下面的V2的对比,发现只能用V2的,如果用V3搞出来tflite模型,在Android手机上使用的时候会报【java.lang.IllegalArgumentException: ByteBuffer is not a valid flatbuffer model】异常

    后来使用V2的预训练的模型,在tensorflow2.0的环境中训练,最后尝试了三种把tensorflow模型转换为tflite格式的模型的方式,最后在手机上都正常运行了

    from tensorflow.keras.applications.inception_v3 import InceptionV3
    
    #导入并使用预训练模型,这里include_top =False 使我们加载了一个不含有最顶部分类层的网络
    # pre_trained_model = InceptionV3(
    #     input_shape=(IMAGE_SIZE, IMAGE_SIZE, 3), include_top=False, weights='imagenet')
    #通过上面的V3和下面的V2的对比,发现只能用V2的,如果用V3搞出来tflite模型,在Android手机上使用的时候
    #会报【java.lang.IllegalArgumentException: ByteBuffer is not a valid flatbuffer model】异常
    pre_trained_model = tf.keras.applications.MobileNetV2(
        input_shape=(IMAGE_SIZE, IMAGE_SIZE, 3), include_top=False, weights='imagenet')
    

    哈哈,发现用预训练的模型,最后算出来的模型准确率比单纯的用图片从0开始训练的模型的准确率高多了

    Screenshot_2018-12-10-16-26-15-0074678571.png Screenshot_2018-12-10-16-26-25-0658584433.png

    相关文章

      网友评论

          本文标题:ByteBuffer is not a valid flatbu

          本文链接:https://www.haomeiwen.com/subject/fduggctx.html