Build Fast. Execute Faster.
train.cpp
#include <gradient.hpp>
using namespace gradientcore;
int main() {
// Zero-overhead memory arenas
Arena *perm_arena = Arena::create(MiB(16), MiB(1), false);
Arena *graph_arena = Arena::create(MiB(64), MiB(1), true);
// PyTorch-like Model Definition
nn::Model model(perm_arena, graph_arena);
model.add_layer(new (perm_arena->push<nn::Linear>()) nn::Linear(perm_arena, 8, 128));
model.add_layer(new (perm_arena->push<nn::ReLU>()) nn::ReLU());
model.add_layer(new (perm_arena->push<nn::Linear>()) nn::Linear(perm_arena, 128, 1));
// Compile & Train!
model.compile(nn::OptimizerType::ADAMW, nn::LossType::HUBER, 0.001f, 200, 128);
model.train(X_train, Y_train);
return 0;
}