def dense_arguments

stelliferous@0.0.2.0 · tensor_convolution.bend:116

import stelliferous@0.0.2.0/tensor_convolution.bend as TensorConvolution
import Base
import stelliferous@0.0.2.0/kernel_shape.bend as KernelShape
import stelliferous@0.0.2.0/kernel_pipeline.bend as Pipeline
import stelliferous@0.0.2.0/kernel_planning.bend as KernelPlanning
import stelliferous@0.0.2.0/math_activation.bend as Activations

116def dense_arguments(geometry: Geometry,+bias_depth: Nat,+workers: U32,+activation: Activations.Activation) -> DenseArguments:
117  Geometry{+count,batched,KernelShape.Dimensions{+ci,+rows,+height,+width,+kernel,+stride,+padding}} = geometry
118  +oh = U32.from_nat(KernelShape.axis_size(height,kernel,stride,padding))
119  +ow = U32.from_nat(KernelShape.axis_size(width,kernel,stride,padding))
120  +input_size = U32.from_nat(Nat.mul(ci,Nat.mul(height,width)))
121  +output_size = (U32.from_nat(rows) * oh * ow : U32)
122  +work = {Pipeline.Work{U32.from_nat(rows),U32.from_nat(height),U32.from_nat(width),U32.from_nat(kernel),U32.from_nat(stride),U32.from_nat(padding),ow,(oh * ow : U32),U32.from_nat(Nat.mul(ci,Nat.mul(kernel,kernel)))} : Pipeline.Work}
123  DenseArguments{count,work,input_size,output_size,output_shape(batched,count,U32.from_nat(rows),oh,ow),
124    depth(work,U32.from_nat(KernelPlanning.capacity(input_size)),U32.shln(1,bias_depth),workers,activation)}

Uses (15)

Used by (1)