大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
nn.MSELoss均方损失函数:
这里,loss,x,y的维度是一样的,可以是向量或者矩阵,i是下标。比如若x,y是矩阵
则x,y的均方误差计算是逐元素运算的
import torch
import torch.nn as nn
crit=nn.MSELoss()#均方损失函数
target = torch.FloatTensor([[1, 2, 3], [4, 5, 6]])
pred= torch.FloatTensor([[7, 8, 9], [8, 4, 3]])
cost=crit(pred,target)#将pred,target逐个元素求差,然后求平方,再求和,再求均值,
print(cost)#tensor(22.3333)
sum=0
for i in range (0,2):#遍历行i
for j in range(0,3):#遍历列
sum+=(target[i][j]-pred[i][j])*(target[i][j]-pred[i][j])#对应元素做差,然后平方
print(sum/6)#tensor(22.3333)
很多的loss函数都有size_average和reduce两个布尔类型的参数,因为一般损失函数都是直接计算batch的数据,因此返回的loss结果都是维度为(batch_size,)的向量。
1)如果reduce=False,那么size_average参数失效,直接返回向量形式的loss
2)如果redcue=true,那么loss返回的是标量。
2.a: if size_average=True, 返回loss.mean();#就是平均数
2.b: if size_average=False,返回loss.sum()
注意:默认情况下,reduce=true,size_average=true
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192619.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...