saveModuleBinary function

Future<void> saveModuleBinary(
  1. Module module,
  2. String filePath
)

Saves GPU weights to a flat binary file.

Implementation

Future<void> saveModuleBinary(Module module, String filePath) async {
  final List<Tensor> parameters = module.parameters();
  final BytesBuilder builder = BytesBuilder();

  for (var p in parameters) {
    // 1. Get List<double> from GPU (via your data getter)
    // 2. Convert to Float32List
    // 3. Get the raw byte buffer
    final floatList = Float32List.fromList(p.data);
    builder.add(floatList.buffer.asUint8List());
  }

  await File(filePath).writeAsBytes(builder.toBytes());
  print(
    '💾 GPU weights saved as Binary: $filePath (${File(filePath).lengthSync()} bytes)',
  );
}