Java实现深度神经网络:Sigmoid层
使用Java实现
Sigmoid.java
/**
* Sigmoid层
*
* @author SXC 2020年9月11日 下午12:56:31
*/
public class Sigmoid {
public Sigmoid() {
}
public double[] out(double[] x) {
double[] out = new double[x.length];
for (int i = 0; i < x.length; i++) {
out[i] = sigmoidF(x[i]);
}
return out;
}
private double sigmoidF(double x) {
return 1f / (1f + Math.pow(Math.E, -1 * x));
}
}
测试代码
public class t {
public static void main(String[] args) {
double[] x= {5,7,3};
Sigmoid sigmoid=new Sigmoid();
double[] out1=sigmoid.out(x);
System.out.println(out1[0]+" " +out1[1]+" " +out1[2]);
}
}
运行结果
0.9933071490757153 0.9990889488055994 0.9525741268224331
使用Pytorch实现
import torch as t
input=t.tensor([5,7,3],dtype=t.float32)
sig=t.nn.Sigmoid()
print(sig(input))
运行结果
H:\ProgramData\Anaconda3\python.exe D:/PycharmProjects/untitled/t.py
tensor([0.933, 0.9991, 0.9526])
Process finished with exit code 0
结果相同,达到目标