python程序memory error_python :Memory Error怎么破

defItemSim(self,train=None):train=trainorself.traindata#n=0Item_count=dict()#浏览过每种物品的人数#ItemSimcount=dict()#既浏览过i,又浏览过j的某人的时间加权#forusers,itemsi...

def ItemSim(self,train = None):

train = train or self.traindata

#n=0

Item_count = dict() #浏览过每种物品的人数#

ItemSimcount = dict() #既浏览过i,又浏览过j的某人的时间加权#

for users,items in train.items():

#n+=1

for i,tui in items.items():

Item_count.setdefault(i,0)

Item_count[i] += 1

for j,tuj in items.items():

if i == j:

continue

ItemSimcount.setdefault(users,{})

ItemSimcount[users].setdefault(i,{})

ItemSimcount[users][i].setdefault(j,0)

ItemSimcount[users][i][j] += 1

self.ItemSimlist = dict()

for user,rec in ItemSimcount.items():

self.ItemSimlist.setdefault(user,{})

for i ,related_items in rec.items():

self.ItemSimlist[user].setdefault(i,{})

for j, cij in related_items.items(): #cij:计算出的分子,存放喜欢i和j的某用户的时间加权#

self.ItemSimlist[user][i].setdefault(j,0)

self.ItemSimlist[user][i][j] = cij / math.sqrt(Item_count[i] * Item_count[j] * 1.0)

class中有这段代码,运行到self.ItemSimlist[user][i].setdefault(j,0)时会抱Memory Error的错,怎么破,求大神。

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值