使用pytorch针对自己的数据集进行模型训练,并迁移至android app中,错误问题的原因以及解决之道

如题,前几天,笔者尝试了将pytorch 深度学习模型迁移至android系统中,并写了一篇小结:《Android移动终端应用APP中实现图像分类功能-----以pytorch为例》。在该文中,下载了原作者提供的resnet18模型并迁移至android app中,成功运行。

至此,笔者甚为高兴,以为彻底解决了难题,可以随意迁移网络模型。孰料,将自己整理的图像数据集作为样本库进行迁移学习之后,迁移到android app中,直接一闪而过,还没来得及黑屏就退出了。真是一点情面都不给。在测试了很多次之后,笔者终于痛下决心要找到原因所在,解决这个问题。

但是android 程序调试,要么需要使用虚拟机,要么需要usb连接手机,进行真机调试。掂量具体情况之后,笔者决定连接手机真机进行调试。最终获得相关报错信息如下:

2020-07-10 18:59:24.662 12900-12900/org.pytorch.helloworld E/AndroidRuntime: FATAL EXCEPTION: mainProcess: org.pytorch.helloworld, PID: 12900java.lang.RuntimeException: Unable to start activity ComponentInfo{org.pytorch.helloworld/org.pytorch.helloworld.MainActivity}: com.facebook.jni.CppException: version_number <= kMaxSupportedFileFormatVersion INTERNAL ASSERT FAILED at../caffe2/serialize/inline_container.cc (init at ../caffe2/serialize/inline_container.cc:131)(no backtrace available)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3782)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3961)at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)at android.os.Handler.dispatchMessage(Handler.java:107)at android.os.Looper.loop(Looper.java:213)at android.app.ActivityThread.main(ActivityThread.java:8178)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)Caused by: com.facebook.jni.CppException: version_number <= kMaxSupportedFileFormatVersion INTERNAL ASSERT FAILED at../caffe2/serialize/inline_container.cc (init at ../caffe2/serialize/inline_container.cc:131)(no backtrace available)at org.pytorch.Module$NativePeer.initHybrid(Native Method)at org.pytorch.Module$NativePeer.(Module.java:70)at org.pytorch.Module.(Module.java:25)at org.pytorch.Module.load(Module.java:21)at org.pytorch.helloworld.MainActivity.onCreate(MainActivity.java:100)at android.app.Activity.performCreate(Activity.java:8086)at android.app.Activity.performCreate(Activity.java:8074)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3755)... 11 more

上述报错信息一大堆,其中有一句话很关键:

Caused by: com.facebook.jni.CppException: version_number <= kMaxSupportedFileFormatVersion INTERNAL ASSERT FAILED at../caffe2/serialize/inline_container.cc (init at ../caffe2/serialize/inline_container.cc:131)(no backtrace available)

经过查询,该原因应该是 app程序中build.grade 中有相关内容如下:

dependencies {implementation 'androidx.appcompat:appcompat:1.1.0'implementation 'org.pytorch:pytorch_android:1.3.0'implementation 'org.pytorch:pytorch_android_torchvision:1.3.0'
}

而我使用的pytorch版本为1.5,原因可能是在这里。具体该如何解决呢?需要对pytorch_android进行重新编译,才能解决这个问题。敬请关注后续文章。

-------------------- 正文到此结束------------------------

推荐一个公众号:健哥聊量化,会持续推出股票相关基础知识,以及python实现的一些基本的分析代码。欢迎大家关注,二维码如下:

相关文章列表如下:

  • 股票基础知识----- K线形态

  • 股票K线形态 ----早晨之星

  • “早晨之星”实际操作篇---通达信软件为例

  • 牛刀小试----python+tushare进行股票分析

  • 股票K线形态----黄昏之星

  • 股票K线形态-----墓碑线

  • 股票K线形态-----多方炮

  • 股票K线形态-----红三兵

  • 股票K线形态----三只乌鸦

  • 股票K线形态-----锤头线、吊颈线、倒锤头线


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部