@@ -21,16 +21,21 @@ namespace infinicore::test {
2121// Simple test module that mimics torch.nn.Linear
2222class MockLinearModule : public infinicore ::nn::Module {
2323public:
24+ // Declare parameters using macros (torch-like style)
25+ INFINICORE_NN_PARAMETER (weight);
26+ INFINICORE_NN_PARAMETER (bias);
27+
2428 MockLinearModule (int input_size, int output_size, const infinicore::Device &device)
2529 : input_size_(input_size), output_size_(output_size), device_(device) {
26-
27- // Initialize weight parameter (similar to torch.nn.Linear.weight)
28- register_parameter (" weight" ,
29- infinicore::nn::Parameter ({static_cast <size_t >(output_size), static_cast <size_t >(input_size)}, infinicore::DataType::F32, device));
30-
31- // Initialize bias parameter (similar to torch.nn.Linear.bias)
32- register_parameter (" bias" ,
33- infinicore::nn::Parameter ({static_cast <size_t >(output_size)}, infinicore::DataType::F32, device));
30+ // Initialize parameters using macros
31+ INFINICORE_NN_PARAMETER_INIT (weight,
32+ ({static_cast <size_t >(output_size), static_cast <size_t >(input_size)},
33+ infinicore::DataType::F32,
34+ device));
35+ INFINICORE_NN_PARAMETER_INIT (bias,
36+ ({static_cast <size_t >(output_size)},
37+ infinicore::DataType::F32,
38+ device));
3439 }
3540
3641 // Simple forward pass (conceptual - would need actual matrix operations)
0 commit comments