おはようございます!私はJavaのコースのために自分自身を準備しようとここに新しいです。今、私は簡単なパーセプトロンをモデル化したYouTubeのThe Coding Trainによって書かれたこのコードを再作成していました。私は入力値(3つの数字)を入力し、Perceptronクラスのオブジェクトpを作成し、p.guessを取得する別ファイルを持っています。しかし、それは私に0.0の結果を与えます。それはsignumの有効な出力であるため可能ですが、すべてではありません。ここで私のJavaの知識の欠如は私を下げることができます。ウェイト配列の変更を必ず認識していると思いますか?私はそれが乗算で最初に作成された空の配列を使用すると思う...これを修正するには?私はページの終わりのコードでそれを呼び出します:メインメソッド以外の変数にアクセス
import java.io.*;
import java.lang.*;
import java.util.*;
public class Perceptron {
static double[] weights = new double [3];
public static void main(String[] args){
for (int i = 0; i<weights.length; i++){
weights[i] = randomNumber(-1, 1);
}
System.out.println(Arrays.toString(weights));
}
public static double guess(double[] inputs){
double sum = 0;
for (int i = 0; i < weights.length; i++){
sum += weights[i]*inputs[i];
}
double myguess = Math.signum(sum);
return myguess;
}
public static double randomNumber(int min, int max) {
double d = Math.random()*(max - min) + min;
return d;
}
}
public class myTest{
public static void main(String[] args){
Perceptron p = new Perceptron();
double inputs[] = {-1, 0.5, -0.5};
double eval = p.guess(inputs);
System.out.println(eval);
}
}
ようこそスタックオーバーフロー!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、問題を示す[最小限の、完全で実証可能な例](http://stackoverflow.com/help/mcve)に戻ってください。 –
guess(double [] inputs)メソッドをどこで呼びましたか? –
私は最終的にそれを –