DNNLayer(inDim, outDim, x) = [
    #W = Parameter(outDim, inDim, init="uniform", initValueScale=1, initOnCPUOnly=true, randomSeed=1); # randomizing on CPU with fixed seed to get reproducable results across configurations
    #b = Parameter(outDim, 1,     init="uniform", initValueScale=1, initOnCPUOnly=true, randomSeed=1);
    W = Parameter(outDim, inDim);
    b = Parameter(outDim, 1);
    t = Times(W, x);
    z = Plus(t, b);
    y = sigmoid(z);
]

DNNLastLayer(hiddenDim, LabelDim, x) = [
    #W = Parameter(LabelDim, hiddenDim, init="uniform", initValueScale=1, initOnCPUOnly=true, randomSeed=1);
    #b = Parameter(LabelDim, 1,         init="uniform", initValueScale=1, initOnCPUOnly=true, randomSeed=1);
    W = Parameter(LabelDim, hiddenDim);
    b = Parameter(LabelDim, 1);
    t = Times(W, x);
    z = Plus(t, b);
]
