首页 > 其他分享 >_pickle.PicklingError: Can't pickle <class '__main__.aaa'>: attribute lookup aa

_pickle.PicklingError: Can't pickle <class '__main__.aaa'>: attribute lookup aa

时间:2023-12-11 20:56:59浏览次数:30  
标签:__ PicklingError aaa 自定义 模块 main pickle

注:其中aaa是我的类名。
这个问题是我想保存一个自定义的类对象时,采用如下代码pickle模块 保存时出现的报错信息。

with open(f'saved_agent_{seed}.pkl', 'wb') as file:
    pickle.dump(agent, file)

出错原因

该错误通常出现在试图使用pickle模块保存自定义类对象,而这个类定义在主模块(‘main’)中。
pickle在加载对象时需要知道类的定义,但由于main模块中的类在另一个解释器中可能没有定义,所以会导致这个错误。

解决方法1

将自定义类放入一个独立的模块中,然后在主模块中导入它。这样就保证了类定义在Pickle加载时可以找到。

解决方法2

如果现在该运行的都已经运行完了,我不想再跑一遍,重新换个模块了。
那么此时就使用dill库,事实证明好像也没有什么区别,保存出来的是一个空文件。

还是乖乖重新开一个吧

标签:__,PicklingError,aaa,自定义,模块,main,pickle
From: https://www.cnblogs.com/yuyuanliu/p/17895517.html

相关文章

  • 88. 合并两个有序数组
    1.题目介绍给你两个按非递减顺序排列的整数数组 \(nums1\)和\(nums2\),另有两个整数\(m\)和\(n\),分别表示\(nums1\)和\(nums2\)中的元素数目。请你合并\(nums2\)到\(nums1\)中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存......
  • 机器学习-线性回归-小批量-梯度下降法-04
    1.随机梯度下降法梯度计算的时候随机抽取一条importnumpyasnpX=2*np.random.rand(100,1)y=4+3*X+np.random.randn(100,1)X_b=np.c_[np.ones((100,1)),X]n_epochs=10000learn_rate=0.001m=100theta=np.random.randn(2,1)forepoch......
  • 实验六
    任务一代码1//P286例8.172//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块3//打印不及格学生信息和所有学生信息程分别调用45#include<stdio.h>6#include<string.h>7#defineN3//运行程序输入测试时,可以把这个......
  • 实验6
    test4代码#include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;vo......
  • CFS调度器 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/scheduler/sched-design-CFS.htmlCFS调度器1.概述CFS代表“完全公平调度器”,是由IngoMolnar实现并合并到Linux2.6.23中的新“桌面”进程调度器。它是替代先前普通调度器SCHED_OTHER交互代码的调度器。CFS设计的80%可以用一句话概括......
  • 一个查找的小程序
    源代码:#include<stdio.h>#defineN5typedefstructSqlist{ intnum; charname[8];}Sqlist;intsearch(SqlistR[],intn,intK){ inti; for(i=0;i<n;i++) if(R[i].num==K) returni; returnn;}intmain(){ SqlistR[N]; intn,k,i; printf("请输入学生人数......
  • 调度器域 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/scheduler/sched-domains.html调度器域每个CPU都有一个“基本”调度域(structsched_domain)。域层次结构是通过这些基本域通过->parent指针构建的。->parent必须以NULL结尾,并且域结构应该是每个CPU的,因为它们是无锁更新的。每......
  • 实验六
    task.4#include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;voido......
  • [CF1416F] Showing Off
    题目链接如果把方向看做有向边,整个图是一个内向基环树。所以考虑哪些点有可能放在基环树的非环部分上,当且仅当一个点周围有严格小于他的点。由于图一定是二分图(黑白染色),没有奇环,所有偶环一定可以拆成二元环,所以可以看做找匹配。两个点能匹配当且仅当他们\(s\)相等。发现一个......
  • .NET5_静态文件读取+脚本参数
    一、静态文件读取:1、Nuget引入:Nuget引入Microsoft.Extensions.FileProvidersSystem.IO2、配置读取静态文件的中间件////读取静态文件的中间件////Nuget引入Microsoft.Extensions.FileProviders////System.IO//app.UseSta......