不懂java,现在要将一些代码转成其他语言。有些地方搞不明白。
public class LogisticRegression {
public int N;
public int n_in;
public int n_out;
public double[][] W;
public double[] b;
public LogisticRegression(int N, int n_in, int n_out) {
//.......
}
public void train(int[] x, int[] y, double lr) {
double[] p_y_given_x = new double[n_out];
double[] dy = new double[n_out];
for(int i=0; i<n_out; i++) {
p_y_given_x[i] = 0;
for(int j=0; j<n_in; j++) {
p_y_given_x[i] += W[i][j] * x[j];
}
p_y_given_x[i] += b[i];
}
softmax(p_y_given_x); // ① ? ? ?
for(int i=0; i<n_out; i++) {
dy[i] = y[i] - p_y_given_x[i];
for(int j=0; j<n_in; j++) {
W[i][j] += lr * dy[i] * x[j] / N;
}
b[i] += lr * dy[i] / N;
}
}
public void softmax(double[] x) { // ② ? ? ?
double max = 0.0;
double sum = 0.0;
for(int i=0; i<n_out; i++) {
if(max < x[i]) {
max = x[i];
}
}
for(int i=0; i<n_out; i++) {
x[i] = Math.exp(x[i] - max);
sum += x[i];
}
for(int i=0; i<n_out; i++) {
x[i] /= sum;
}
}
}
上述 softmax 这个方法没有返回值,也没修改类的任何属性值。那这个方法的对外作用是什么?
在①处的调用,意思是什么?是以 p_y_given_x 这个变量为参数,然后执行结果也赋值给 p_y_given_x 了吗?
public class LogisticRegression {
public int N;
public int n_in;
public int n_out;
public double[][] W;
public double[] b;
public LogisticRegression(int N, int n_in, int n_out) {
//.......
}
public void train(int[] x, int[] y, double lr) {
double[] p_y_given_x = new double[n_out];
double[] dy = new double[n_out];
for(int i=0; i<n_out; i++) {
p_y_given_x[i] = 0;
for(int j=0; j<n_in; j++) {
p_y_given_x[i] += W[i][j] * x[j];
}
p_y_given_x[i] += b[i];
}
softmax(p_y_given_x); // ① ? ? ?
for(int i=0; i<n_out; i++) {
dy[i] = y[i] - p_y_given_x[i];
for(int j=0; j<n_in; j++) {
W[i][j] += lr * dy[i] * x[j] / N;
}
b[i] += lr * dy[i] / N;
}
}
public void softmax(double[] x) { // ② ? ? ?
double max = 0.0;
double sum = 0.0;
for(int i=0; i<n_out; i++) {
if(max < x[i]) {
max = x[i];
}
}
for(int i=0; i<n_out; i++) {
x[i] = Math.exp(x[i] - max);
sum += x[i];
}
for(int i=0; i<n_out; i++) {
x[i] /= sum;
}
}
}
上述 softmax 这个方法没有返回值,也没修改类的任何属性值。那这个方法的对外作用是什么?
在①处的调用,意思是什么?是以 p_y_given_x 这个变量为参数,然后执行结果也赋值给 p_y_given_x 了吗?