public override void Forward(SuperArray x) { base.Forward(x); var(n, c, d, h, w) = x.GetConv3DShape(); int pad = 0; if (Padding == PaddingType.Same) { pad = 1; } else if (Padding == PaddingType.Full) { pad = 2; } var d_out = (d - PoolSize.Item1) / Strides + 1; var h_out = (h - PoolSize.Item2) / Strides + 1; var w_out = (w - PoolSize.Item3) / Strides + 1; var x_reshaped = x.Reshape(n * c, 1, d, h, w); //xCols = ImUtil.Im2Col(x_reshaped, PoolSize, pad, Strides); Output = Ops.ArgMax(xCols); Output = Output.Reshape(d_out, h_out, w_out, n, c).Transpose(2, 3, 4, 0, 1); }
/// <summary> /// Calculates the metric with predicted and true values. /// </summary> /// <param name="preds">The predicted value.</param> /// <param name="labels">The true value.</param> /// <returns></returns> public override SuperArray Calc(SuperArray preds, SuperArray labels) { preds = Ops.ArgMax(preds); labels = Ops.ArgMax(labels); var r = Ops.EqualTo(preds, labels); return(r); }
public override void Forward(SuperArray x) { base.Forward(x); var(n, c, s) = x.GetConv1DShape(); int pad = 0; if (Padding == PaddingType.Same) { pad = 1; } else if (Padding == PaddingType.Full) { pad = 2; } var s_out = (s - PoolSize) / Strides + 1; var x_reshaped = x.Reshape(n * c, 1, s); xCols = ImUtil.Im2Col(x_reshaped, Tuple.Create(PoolSize, PoolSize), pad, Strides); Output = Ops.ArgMax(xCols); Output = Output.Reshape(s_out, n, c).Transpose(2, 0, 1); }
public void Argmax() { variable = Ops.ArgMax(variable); }