基于MSELoss()与CrossEntropyLoss()的区别详解-创新互联
基于pytorch来讲
成都创新互联公司成立10年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供网站设计制作、网站制作、网站策划、网页设计、国际域名空间、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,成都创新互联公司通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。MSELoss()多用于回归问题,也可以用于one_hotted编码形式,
CrossEntropyLoss()名字为交叉熵损失函数,不用于one_hotted编码形式
MSELoss()要求batch_x与batch_y的tensor都是FloatTensor类型
CrossEntropyLoss()要求batch_x为Float,batch_y为LongTensor类型
(1)CrossEntropyLoss() 举例说明:
比如二分类问题,最后一层输出的为2个值,比如下面的代码:
class CNN (nn.Module ) : def __init__ ( self , hidden_size1 , output_size , dropout_p) : super ( CNN , self ).__init__ ( ) self.hidden_size1 = hidden_size1 self.output_size = output_size self.dropout_p = dropout_p self.conv1 = nn.Conv1d ( 1,8,3,padding =1) self.fc1 = nn.Linear (8*500, self.hidden_size1 ) self.out = nn.Linear (self.hidden_size1,self.output_size ) def forward ( self , encoder_outputs ) : cnn_out = F.max_pool1d ( F.relu (self.conv1(encoder_outputs)),2) cnn_out = F.dropout ( cnn_out ,self.dropout_p) #加一个dropout cnn_out = cnn_out.view (-1,8*500) output_1 = torch.tanh ( self.fc1 ( cnn_out ) ) output = self.out ( ouput_1) return output
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章题目:基于MSELoss()与CrossEntropyLoss()的区别详解-创新互联
文章地址:http://ybzwz.com/article/gcojg.html