解决pytorch 交叉熵损失输出为负数的问题
作者:*小呆 发布时间:2022-04-29 10:17:33
标签:pytorch,交叉熵损失,负数
网络训练中,loss曲线非常奇怪
交叉熵怎么会有负数。
经过排查,交叉熵不是有个负对数吗,当网络输出的概率是0-1时,正数。可当网络输出大于1的数,就有可能变成负数。
所以加上一行就行了
out1 = F.softmax(out1, dim=1)
补充知识:在pytorch框架下,训练model过程中,loss=nan问题时该怎么解决?
当我在UCF-101数据集训练alexnet时,epoch设为100,跑到三十多个epoch时,出现了loss=nan问题,当时是一脸懵逼,在查阅资料后,我通过减小学习率解决了问题,现总结一下出现这个问题的可能原因及解决方法:
1. 减小整体学习率。学习率比较大的时候,参数可能over shoot了,结果就是找不到极小值点;减小学习率可以让参数朝着极值点前进;
2. 改变网络宽度。有可能是网络后面的层参数更新异常,增加后面层的宽度试试;
3. 改变层的学习率。每个层都可以设置学习率,可以尝试减小后面层的学习率试试;
4. 数据归一化(减均值,除方差,或者加入normalization,例如BN、L2 norm等);
5. 加入gradient clipping;
6 输入数据含有脏数据,即NaN,一般当使用实际业务的真实数据时,容易出现脏数据。
来源:https://blog.csdn.net/qq_39575835/article/details/104353889
0
投稿
猜你喜欢
- OpenCV的imread不能读取中文路径问题import numpy as npimport cv2cv_img = cv2.imdeco
- 地图 API Map() 构造器实例创建一个 Google 地图:<html><head><scriptsrc
- 一、问题描述如题,在使用pip install xxx的方法安装python库,或者是基于python的软件时,报错“E
- python判断图片主色调,单个颜色:#!/usr/bin/env python# -*- coding: utf-8 -*-import
- 一、基本概念(查询语句)①基本语句1、“select * from 表名;”,—
- 本文实例为大家分享了python实现自动打卡小程序的具体代码,供大家参考,具体内容如下"""湖南大学疫情防控每
- 以前没见过这个效果,滚动纵向滚动条看看效果就明白了这样的效果,广告商应该比较喜欢。<!DOCTYPE html PUBLIC &quo
- 获取数据(四种方式)1. url: 需要正则去匹配 url(r'^index/(num)/$
- 本文实例讲述了Python基于贪心算法解决背包问题。分享给大家供大家参考,具体如下:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在
- 前记在Python3.7后官方库出现了contextvars模块, 它的主要功能就是可以为多线程以及asyncio生态添加上下文功能,即使程
- 想要追赶 Python 的热潮,应该如何学习呢?现在许多人在自学之外,都会选择去培训机构学习。选择培训机构的的标准是什么呢?什么样的pyth
- 一·json数据格式1.什么是jsonJSON是一种轻量级的数据交互格式。可以按照.JSON指定的格式去组织和封装数据
- 在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由Sergey Chikuyonok开发。你在写HTM
- 起步要介绍一个非常方便的 Django 扩展包-- django-hosts 。它能够提供在不同的子域名下访问不同的 app。例如,在项目中
- 面对goroutine我们都需要等待它完成交给它的事情,等待它计算完成或是执行完毕,所以不得不在程序需要等待的地方使用time.Sleep(
- 在我之前解释了flask如何支持多线程主要通过两个类来实现,LocalStack和Local,在Local中有两个属性,__storage_
- 本代码实现的是,在旋转10度的基础上,再进行增加对比度的操作。1 代码:代码注释中的代码都是可以运行的. 但是不怎么靠谱,因为文
- 本节内容:1.前言2.相关概念3.Python中的默认编码4.Python2与Python3中对字符串的支持5.字符编码转换一、前言Pyth
- 列表的索引取值1. 列表的索引和字符串一样,列表中的每一个元素也都有一个属于自己的编号,这个编号就是列表的索引。2. 列表索引取值通过字符串
- 说明和代码如下:<%@ language = vbscript%><%