0
点赞
收藏
分享

微信扫一扫

【pytorch】使用numpy实现pytorch的softmax函数与cross_entropy函数

torch.nn.functional.F.softmax

公式
【pytorch】使用numpy实现pytorch的softmax函数与cross_entropy函数_深度学习

import numpy as np
import torch
import torch.nn.functional as F


def my_softmax(x):
exp_x = np.exp(x)
return exp_x/np.sum(exp_x)

x = np.array([1.5, 2.2, 3.1, 0.9, 1.2, 1.7])
xt = torch.from_numpy(x)


print('F.softmax:', F.softmax(xt))
print('my_softmax', my_softmax(x))

结果一致
【pytorch】使用numpy实现pytorch的softmax函数与cross_entropy函数_深度学习_02
从源码上来看,torch.nn.functional.F.softmax实际上调用的是Tensor自身的softmax函数
【pytorch】使用numpy实现pytorch的softmax函数与cross_entropy函数_python_03

torch.nn.functional.F.softmax

公式
【pytorch】使用numpy实现pytorch的softmax函数与cross_entropy函数_python_04

import numpy as np
import torch
import torch.nn.functional as F



def my_softmax(x):
exp_x = np.exp(x)
return exp_x/np.sum(exp_x)

def my_log_softmax(x):
return np.log(my_softmax(x))

x = np.array([1.5, 2.2, 3.1, 0.9, 1.2, 1.7])
xt = torch.from_numpy(x)


print('F.softmax:', F.log_softmax(xt))
print('my_softmax', my_log_softmax(x))

结果一致
【pytorch】使用numpy实现pytorch的softmax函数与cross_entropy函数_深度学习_05


举报

相关推荐

0 条评论