///|
pub fn Tensor::softmax(self : Tensor, axis : Int) -> Tensor {
let ax = normalize_axis(axis, self.shape.length())
let outer = shape_size(self.shape[0:ax].to_owned())
let dim = self.shape[ax]
let inner = shape_size(self.shape[ax + 1:].to_owned())
let out = Array::make(self.data.length(), 0.0)
for o in 0.. maxv {
maxv = v
}
}
let mut total = 0.0
for d in 0..