4 8月 2022
4 8月 2022
ターミナル
MQL5
//--- matrix a= {{1, 4}, {9, 16}}; Print("matrix a=\n",a); a=MathSqrt(a); Print("MatrSqrt(a)=\n",a); /* matrix a= [[1,4] [9,16]] MatrSqrt(a)= [[1,2] [3,4]] */MathModおよびMathPowの場合、2番目の要素には、適切なサイズのスカラーまたは行列/ベクトルを指定することができます。
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Use the initializing function to populate the vector vector r(10, ArrayRandom); // Array of random numbers from 0 to 1 //--- Calculate the average value double avr=r.Mean(); // Array mean value vector d=r-avr; // Calculate an array of deviations from the mean Print("avr(r)=", avr); Print("r=", r); Print("d=", d); vector s2=MathPow(d, 2); // Array of squared deviations double sum=s2.Sum(); // Sum of squared deviations //--- Calculate standard deviation in two ways double std=MathSqrt(sum/r.Size()); Print(" std(r)=", std); Print("r.Std()=", r.Std()); } /* avr(r)=0.5300302133243813 r=[0.8346201971495713,0.8031556138798182,0.6696676534318063,0.05386516922513505,0.5491195410016175,0.8224433118686484,... d=[0.30458998382519,0.2731254005554369,0.1396374401074251,-0.4761650440992462,0.01908932767723626,0.2924130985442671, ... std(r)=0.2838269732183663 r.Std()=0.2838269732183663 */ //+------------------------------------------------------------------+ //| Fills the vector with random values | //+------------------------------------------------------------------+ void ArrayRandom(vector& v) { for(ulong i=0; i<v.Size(); i++) v[i]=double(MathRand())/32767.; }
float型を用いた演算のための数学関数を改善しました。Float型の行列とベクトルに数学関数を適用できるようになったことで、float型のスカラーに適用する数学関数が改善されました。以前は、これらの関数パラメータは無条件にdouble型にキャストされ、その後、対応する数学関数の実装が呼び出されてその結果がfloat型にキャストバックされていました。余分な型キャストをすることなく、演算が実装されるようになりました。
次の例では、数学的な正弦の計算の違いを示しています。
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- Array of random numbers from 0 to 1 vector d(10, ArrayRandom); for(ulong i=0; i<d.Size(); i++) { double delta=MathSin(d[i])-MathSin((float)d[i]); Print(i,". delta=",delta); } } /* 0. delta=5.198186103783087e-09 1. delta=8.927621308885136e-09 2. delta=2.131878673594656e-09 3. delta=1.0228555918923021e-09 4. delta=2.0585739779477308e-09 5. delta=-4.199390279957527e-09 6. delta=-1.3221741035351897e-08 7. delta=-1.742922250969059e-09 8. delta=-8.770715820283215e-10 9. delta=-1.2543186267421902e-08 */ //+------------------------------------------------------------------+ //| Fills the vector with random values | //+------------------------------------------------------------------+ void ArrayRandom(vector& v) { for(ulong i=0; i<v.Size(); i++) v[i]=double(MathRand())/32767.; }
AF_ELU | ELU(指数線形ユニット) |
AF_EXP | 指数 |
AF_GELU | ガウシアンエラー線形ユニット |
AF_HARD_SIGMOID | ハードシグモイド |
AF_LINEAR | 線形 |
AF_LRELU | Leaky REctified線形ユニット |
AF_RELU | 正規化線形ユニット |
AF_SELU | SELU (Scaled Exponentia線形ユニット) |
AF_SIGMOID | シグモイド |
AF_SOFTMAX | ソフトマックス |
AF_SOFTPLUS | ソフトプラス |
AF_SOFTSIGN | ソフトサイン |
AF_SWISH | スウィッシュ |
AF_TANH | ハイパーボリックタンジェント |
AF_TRELU | しきい値化されたREctified線形ユニット |
LOSS_MSE | 平均二乗誤差 |
LOSS_MAE | 平均絶対誤差 |
LOSS_CCE | カテゴリー別 交差エントロピー |
LOSS_BCE | バイナリ交差エントロピー |
LOSS_MAPE | MAPE (平均絶対誤差率) |
LOSS_MSLE | 平均二乗対数誤差 |
LOSS_KLD | カルバック・ライブラー ダイバージェンス |
LOSS_COSINE | コサイン類似度/近接度 |
LOSS_POISSON | ポワッソン |
LOSS_HINGE | ヒンジ |
LOSS_SQ_HINGE | 2乗 ヒンジ |
LOSS_CAT_HINGE | カテゴリカル・ヒンジ |
LOSS_LOG_COSH | ハイパーボリックコサインの 対数 |
LOSS_HUBER | フーバー |
int cl_ctx; //--- Initializing the OpenCL context if((cl_ctx=CLContextCreate(CL_USE_GPU_DOUBLE_ONLY))==INVALID_HANDLE) { Print("OpenCL not found"); return; }
CalendarValueLast(change, result, "", "EUR")
MetaEditor
'levels.bmp' as 'uint levels[18990]'