解决pytorch训练的过程中内存一直增加的问题
代码中存在累加loss,但每步的loss没加item()。
pytorch中,.item()方法 是得到一个元素张量里面的元素值
具体就是 用于将一个零维张量转换成浮点数,比如计算loss,accuracy的值
就比如:
loss = (y_pred - y).pow(2).sum()
print(loss.item())
for epoch in range(100):index=np.arange(train_sample.shape[0])np.random.shuffle(index)train_set=train_sample[index].tolist()model.train()loss,s=0,0for s in tqdm(range(0,train_sample.shape[0],batch_size)):if s+batch_size>train_sample.shape[0]:breakbatch_loss=model(train_set[s:s+batch_size])optimizer.zero_grad()batch_loss.backward()optimizer.step()# 会导致内存一直增加,需改为loss+=batch_loss.item()loss+=batch_losss+=batch_sizeloss/=total_batchprint(epoch,loss)if (epoch+1) % 10 ==0:model.eval()model.save_embedding(epoch)
以上代码会导致内存占用越来越大,解决的方法是:loss+=batch_loss.item()。值得注意的是,要复现内存越来越大的问题,模型中需要切换model.train() 和 model.eval(),train_loss以及eval_loss的作用是保存模型的平均误差(这里是累积误差),保存到tensorboard中。
解决pytorch训练的过程中内存一直增加的问题相关推荐
- python吃显卡还是内存不足_解决pytorch GPU 计算过程中出现内存耗尽的问题
Pytorch GPU运算过程中会出现:"cuda runtime error(2): out of memory"这样的错误.通常,这种错误是由于在循环中使用全局变量当做累加器, ...
- antimalware service executable占用内存_解决 vue 项目运行过程中内存泄漏问题
vue-cli3.0 内存溢出 JavaScript heap out of memory vue-cli3.0构建的项目,开发过程中,可能会遇到内存溢出的情况,改动一点代码,代码编译,进程就会断掉, ...
- python吃显卡还是内存不足_解决Pytorch 训练与测试时爆显存(out of memory)的问题
Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法. 使用torch.cuda.empty_cache() ...
- 的训练过程_指外翻的人在训练的过程中,要不要拉伸收肌?
大家好 这里是诺亚第运动康复学院 第55讲?指外翻的人在训练的过程中,要不要拉伸?收肌? 现代人由于长期久坐 穿鞋穿袜把脚保护地太好 再加上体重越来越重 导致横弓纵弓塌陷的人越来越多 横弓一塌陷 横头 ...
- cp 过程中目录突然挂了_怎么解决管材激光切割机切管过程中出现的过烧及挂渣...
近年来,随着激光切割机的发展,不仅被用于切割平面板材,而且被应用于切割管材,我们称之为"管材激光切割机".那么管材激光切割机用于切割管材时是否会出现问题呢,是的,确实出现了问题. ...
- MSComm控件过程中内存溢出和GetOneDimSize出错的问题
MSComm控件过程中内存溢出和GetOneDimSize出错的问题 现在做的一个项目需要实现上位机和单片机的串口通信,为了方便,使用了MSComm控 件,但写程序时在处理接收数据遇到了问题,程序可以 ...
- 解决爬取网站过程中遇到的HTTP Error 302错误和中文乱码问题
解决爬取网站过程中遇到的HTTP Error 302错误和中文乱码问题 参考文章: (1)解决爬取网站过程中遇到的HTTP Error 302错误和中文乱码问题 (2)https://www.cnbl ...
- 解决Android Studio安装过程中“SDK tools directory is missing”的问题
解决Android Studio安装过程中"SDK tools directory is missing"的问题 参考文章: (1)解决Android Studio安装过程中&qu ...
- 解决使用MSComm控件过程中内存溢出的问题
现在做的一个项目需要实现上位机和单片机的串口通信,为了方便,使用了MSComm控件,但写程序时在处理接收数据遇到了问题,程序可以编译通过,但运行的过程中,程序只要接收到串口发来的数据,就会弹出内存溢出 ...
最新文章
- Memory Information on Windows Mobile(续)
- 0代码就能做Python数据分析,这个Jupyter插件,用起来就像Excel一样简单
- VMware 如何通过现有虚拟机克隆新的虚拟机
- Ubuntu系统配置JDK环境变量
- 学习java第一步_Spring Boot 学习第一步(搭建初步环境)
- c#象棋程序_C ++程序确定象棋方块的颜色
- 使用 Google gflags 简化命令行参数处理
- idea类前面有个j_idea中所有Java类标识变成一个J
- lpsolve java_如何使用LpSolve在R中设置线性编程优化?
- 解决微信浏览器无法使用reload()刷新页面
- 订阅发布延时_Redis实时队列和延时队列的php实现
- 人工鱼群算法Matlab实现
- 快捷餐饮之店家后台系统管理实现
- 工信部:未来三年我国处于5G发展导入期,要适度超前建设
- MFC ON_NOTIFY_EX消息是干什么用的?
- Intent之对象传递(Parcelable传递对象和对象集合)
- console.log(console.log) = ?
- Carthage安装使用
- 通信领域当前的主流技术及其社会需求调查报告
- SpringBoot实现SpringTask调度任务---实现间隔调度与CRON调度处理
热门文章
- 自定义标签之 带Body的标签库
- .NET 某电商交易平台Web站 CPU爆高分析
- SpringCloud Alibaba Sentinel 项目基础环境搭建
- Elasticsearch(三) 使用kibana 操作ES
- elasticsearch集群选举源码解析
- 台式计算机睡眠了怎么唤醒,台式电脑睡眠了怎么唤醒
- nginx自定义日志
- centos6.5 python2.6.6升级到python2.7.15
- 小程序开发工具不显示tobar图标
- Stopping ADB server failed(code -1)