pytorch 激活函数

 

inplace=True会x把输入前的删掉了,都变成了输入后的,

没有inplace,输入还是输入,输出是新的了。

import torch
import torch.nn as nn

#inplace为True,将会改变输入的数据 ,否则不会改变原输入,只会产生新的输出
m = nn.LeakyReLU(inplace=True)
input = torch.randn(7)

print("输入处理前图片:")
print(input)

output = m(input)

print("ReLU输出:")
print(output)

print("输入处理后图片:")
print(input)

 

import torch
import torch.nn.functional as F
conf_mask = torch.FloatTensor([0.0, 1.0, 0.0, 1.0, 1.0])
conf_data = torch.FloatTensor([-20.1, -0.9, 0.0, 0.2,0.5,0.99, 2.2])

import torch
import torch.nn as nn

#inplace为True,将会改变输入的数据 ,否则不会改变原输入,只会产生新的输出
m = nn.LeakyReLU(inplace=True)


output = m(conf_data)
print(output)


print(torch.sigmoid(conf_data))
print(torch.tanh(conf_data))
print(F.softplus(conf_data))

 

 

import torch
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt

# 定义数据x
x = torch.linspace(-5, 5, 200)
x = Variable(x)
np_x = x.data.numpy()

# 通过激活函数处理x
y_relu = F.relu(x).data.numpy()
y_sigmoid = F.sigmoid(x).data.numpy()
y_tanh = F.tanh(x).data.numpy()
y_softmax = F.softplus(x).data.numpy()

参考:https://blog.csdn.net/Quincuntial/article/details/78023838

当x为0时,y为0,所以bceloss不能用。

nn.LeakyReLU(0.2, inplace=True)

你可能感兴趣的:(torch)