- (make-dense-layer input-size output-size #!key (activation (make-identity)) (use-bias #t) (dtype 'f32) (name "Dense")) -> layerprocedure
Creates a fully connected layer. Weights start as uniform random values scaled by sqrt(2 / input-size); biases start at zero.
- input-size
- number of input features
- output-size
- number of output features
- activation
- activation object (default identity)
- use-bias
- whether to include a bias term (default #t)
- dtype
- 'f32 or 'f64 (default 'f32)
- name
- layer name
Input shapes:
- 1-D: (input_size) -> output: (output_size)
- 2-D: (batch_size, input_size) -> output: (batch_size, output_size)
For 2-D inputs, the layer uses one BLAS GEMM for the whole batch.
(define layer (make-dense-layer 784 128 activation: (make-relu) name: "Hidden1")) ; Single input (define x (make-tensor32 (make-f32vector 784) '(784))) (define output (forward layer x)) ; Shape: (128) ; Batch input (define batch-x (make-tensor32 (make-f32vector (* 32 784)) '(32 784))) (define batch-output (forward layer batch-x)) ; Shape: (32, 128)