Python机器学习常用

2021/5/31更新

Pytorch nn.Softmax()函数

这个函数的公式是

\frac{e^{x_{i}}}{\sum e^{x_{i}}}

展开就是:

\frac{e^{x_{1}}}{e^{x_{1}}+e^{x_{2}}+e^{x_{3}}} OR \frac{e^{x_{2}}}{e^{x_{1}}+e^{x_{2}}+e^{x_{3}}} OR \frac{e^{x_{3}}}{e^{x_{1}}+e^{x_{2}}+e^{x_{3}}}

import torch
import torch.nn as nn
import numpy as np

a = np.array([[0.5, 0.7],[0.8, 0.4]])
b = torch.from_numpy(a)

f = nn.Softmax(dim = 1)
c = f(b)
c

运行示意:

这个函数中用到了一个参数dim,dim=0时:结果的单列元素之和为1;dim=1时:结果的单行元素之和为1。

\frac{e^{0.5}}{e^{0.5}+e^{0.7}}=0.450...                               \frac{e^{0.5}}{e^{0.5}+e^{0.8}}=0.425...

另一方面,因为这个函数用的是e^{x},所以它能够使元素间差距稍微较大的时候,softmax之后的值会拉开非常大的距离,而元素间差距较小时,softmax之后的值之间的距离会很小,很平滑。

当元素间差都不变,都一样时,softmax生成的矩阵就不变。


2021/7/9更新

python3自带的split和re包里的split的区别:

这个函数就是分割字符串的意思,把字符串分割成列表

python3自带的只允许有一个分割符,re包允许有多个分割符,它们一起用[]列表装起来即可。

两种方法都会把 分割符 吞掉。

sentence = "布偶猫超可爱!它有长长的毛,和乖巧的性格。"

#py3 split()
sentence.split("!")
#['布偶猫超可爱','它有长长的毛,和乖巧的性格。']

import re
re.split("[!,。]",sentence)
#['布偶猫超可爱','它有长长的毛','和乖巧的性格']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值