我在Chaquopy中利用joblib来load一个在pycharm中写好的AdaBoost模型:

from joblib import dump, load
filename = join(dirname(__file__), 'gao1_to_gao2_1.pkl')
clf = load(filename)

  报错如下:

E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example.NCEPU, PID: 18024com.chaquo.python.PyException: ValueError: Buffer dtype mismatch, expected 'SIZE_t' but got 'long long'at <python>.sklearn.tree._tree.Tree.__cinit__(_tree.pyx:607)at <python>.pickle.load_reduce(pickle.py:1587)at <python>.pickle.load(pickle.py:1210)at <python>.joblib.numpy_pickle._unpickle(numpy_pickle.py:504)at <python>.joblib.numpy_pickle.load(numpy_pickle.py:585)at <python>.AdaBoost.test(AdaBoost.py:76)at <python>.chaquopy_java.call(chaquopy_java.pyx:380)at <python>.chaquopy_java.Java_com_chaquo_python_PyObject_callAttrThrowsNative(chaquopy_java.pyx:352)at com.chaquo.python.PyObject.callAttrThrowsNative(Native Method)at com.chaquo.python.PyObject.callAttrThrows(PyObject.java:232)at com.chaquo.python.PyObject.callAttr(PyObject.java:221)at com.example.NCEPU.Student.Predict.AdaBoostActivity.callPythonCode(AdaBoostActivity.java:45)at com.example.NCEPU.Student.Predict.AdaBoostActivity.createList(AdaBoostActivity.java:61)at com.example.NCEPU.Student.Predict.AdaBoostActivity.lambda$initViews$1$AdaBoostActivity(AdaBoostActivity.java:56)at com.example.NCEPU.Student.Predict.-$$Lambda$AdaBoostActivity$dJAvP4dDDrPleKcJgBCESW0ea0M.onClick(Unknown Source:2)at android.view.View.performClick(View.java:7192)at android.view.View.performClickInternal(View.java:7166)at android.view.View.access$3500(View.java:824)at android.view.View$PerformClick.run(View.java:27592)at android.os.Handler.handleCallback(Handler.java:888)at android.os.Handler.dispatchMessage(Handler.java:100)at android.os.Looper.loop(Looper.java:213)at android.app.ActivityThread.main(ActivityThread.java:8169)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)

  翻遍stackoverflow发现是因为32位Python不能导入64位训练的模型,于是在Chaquopy中输出一下:

import platform
print(platform.architecture())

输出为:

('32bit', 'WindowsPE')

  果然,Chaquopy中Python默认是32位。那没办法,只能用32位Python训练模型然后再导入了。

1.安装32位python

  在官网下载32位的python38,然后安装,这个不再叙述。
  安装后在Pycharm上配置:

  这个时候在pycharm上打印:

import platform
print(platform.architecture())

  输出为:

('32bit', 'WindowsPE')

  可以看到当前版本已经是32位了

2.安装skleanr和pandas

  直接在pycharm的Terminal中安装:

pip install sklearn -i https://pypi.douban.com/simple
pip install pandas -i https://pypi.douban.com/simple

  安装过程有极大概率会报错,这中间省略了很多细节。。。。因为问题实在太多了,忘记记录了。不过最后是升级了一下pip就OK了。

3.训练模型并保存

这一步是在pycharm中进行的:

clf = AdaBoostClassifier(base_estimator=DecisionTreeClassifier(max_depth=7, min_samples_leaf=5),n_estimators=200,algorithm='SAMME', learning_rate=0.5)
clf = clf.fit(train_x, train_y)  # 训练模型
dump(clf, 'gao1_to_gao2_1.pkl')

4.Chaquopy中加载模型

  gao1_to_gao2_1.pkl放在python文件夹下:

from joblib import dump, load
filename = join(dirname(__file__), 'gao1_to_gao2_1.pkl')
clf = load(filename)

Chaquopy中不能导入64位Python训练的机器学习模型(32bit与64bit不兼容)相关推荐

  1. 无法启动python 因为计算机中丢失,win7 64位 python启动报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll...

    安装python3.7,安装成功后,在cmd窗口输入python检查是否安装成功,报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll 在网上查询了 ...

  2. sqlsugar mysql连接字符串_通用数据访问组件UniDAC最新版本v8.2.4,支持Lazarus中的macOS 64位...

    UniDAC(Universal Data Access Components)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++Builder, La ...

  3. 一文搞懂如何使用ArcGIS API for Python训练深度学习模型

    一文搞懂如何使用ArcGIS API for Python训练深度学习模型 文章目录 一文搞懂如何使用ArcGIS API for Python训练深度学习模型 写在前面 一.ArcGIS API f ...

  4. 游戏跟计算机不兼容,Win7 64位旗舰版系统下游戏延迟和游戏不兼容如何解决【图】...

    很多人都喜欢在win7系统电脑上面玩网络游戏,而玩游戏的时候总是会碰到一些问题,比如玩游戏的时候出现网络延迟或者不兼容的现象,主要表现为当两台电脑都玩游戏,没什么延迟现象,但只要有其中的一台电脑打开过 ...

  5. python手动将机器学习模型保存为json文件

    python手动将机器学习模型保存为json文件 # 导入需要的包和库: # Import Required packages #-------------------------# Import t ...

  6. 32位python和64位python区别_python32位和64位有什么区别

    python32位和64位有什么区别?64位能够用更大的内存空间,64位可以在64位的系统下运行,但是不能在32位系统下运行. 32位能够在32位和64位上运行,考虑到兼容性,建议使用32位的pyth ...

  7. 32位python和64位python区别_python32位和64位版本的区别是什么

    python32位和64位版本的区别是什么 发布时间:2020-08-05 09:38:41 来源:亿速云 阅读:83 作者:清晨 小编给大家分享一下python32位和64位版本的区别是什么,相信大 ...

  8. 在Oracle VM VirtualBox中如何安装64位虚拟机系统

    一.前提条件 VirtualBox安装64bit的系统需要满足以下条件: 64bit的cpu(支持硬件虚拟化技术) 64bit的操作系统 64bit的VirtualBox 二.安装示例 下面以HP P ...

  9. 批处理文件中判断是否64位系统

    @echo off if /i "%PROCESSOR_IDENTIFIER:~0,3%" == "X86" goto 1 //通过参数判定操作系统位数,并跳转 ...

最新文章

  1. OpenCASCADE:Inspector的TInspectorEXE 示例
  2. JavaScript --- 表单focus,blur,change事件的实现
  3. mysql 索引的统计
  4. java反应器构型,反应器结构及工作原理现用图解.doc
  5. Wi-Fi 6 「破茧成蝶」,高通全面布局端到端最佳解决方案
  6. javaweb实训第五天下午——SpringMVC基础
  7. android4.1 l36h,索尼 L36h跌破3K 升Android 4.3机型推荐(6)-搜狐数码
  8. node.js(五)项目创建管理
  9. 安卓最新版本_nyearlabel安卓下载-nyearlabel最新版本下载v1.2.3 安卓版
  10. js中判断对象数组中是否存在某个对象,以及使用判断是否存在某个元素的indecOf()和find()方法
  11. pynq z1+ov5640
  12. Deprecated: Function eregi() is deprecated in D:\Apache24\htdocs\processfeedback.php on line 21
  13. 计算机专业考研复试流程,给未来的程序猿:2019计算机专业考研复试基本流程...
  14. 盖茨与鲍尔默愤而诉Google 李开复离职有内情 -- ,买skype来控制桌面建立渠道吧
  15. ubuntu服务器lxde桌面,LXDE桌面环境简介
  16. 洛谷P4315 月下“毛景树”(树剖+线段树)
  17. 游戏一、脑洞大开3(密文破译)
  18. 【iOS】AVPlayer 视频播放
  19. smarty引入html,php用Smarty模板生成html文件
  20. 12步解N-S方程之第五步(2)

热门文章

  1. 实现图片加载先模糊后清晰的效果
  2. Flink使用指南:Flink操作命令基础整理 (日常更新中...)
  3. 如何切入社群电商新一波红利
  4. React组件通信-非父子组件间的通信
  5. 内网穿透方法有哪些?路由器端口映射外网和软件方案步骤
  6. 云开发校园微社区微信小程序源码/二手交易/兼职交友微信小程序开源功能介绍
  7. Centos7笔记之Postfix邮件服务器搭建
  8. 一年涌入3000家“他经济”现资本众生相
  9. PHP环境提取m3u8,PHP读取转发M3U8的方法 PHP解码转发M3U8
  10. ceph客户端使用_CEPH应用