Mxnet

From Colettapedia
Jump to navigation Jump to search

Tutorials

Snippets

MultiGPU training

ctx = [mx.gpu(i) for i in range(3)]
data = gluon.utils.split_and_load(data, ctx)
label = gluon.utils.split_and_load(label, ctx)
with autograd.record():
    losses = [loss(net(X), Y) for X, Y in zip(data, label)]
for l in losses:
    l.backward()

Metrics

metric = mx.metric.Accuracy()
with autograd.record():
    output = net(data)
    L = loss(ouput, label)
    loss(ouput, label).backward()
trainer.step(batch_size)
metric.update(label, output)

tensorboard for network viz/execution metrics

summary_writer = tensorboard.FileWriter('./logs/')
...
for name, param in net.collect_params():
    grad = param.grad.asnumpy().flatten()
    s = tensorboard.summary.histogram(name, grad)
    summary_writer.add_summary(s)
...
tensorboard.summary_writer.close()

Data loader

  • mx.gluon.data.vision.ImageFolderDataset(root, flag, transform=None)

Save and load models

  • model.save_parameters(filename)
  • model.load_parameters(filename, ctx, allow_missing=False, ignore_extra=False)

Fundmentals

  • MXNet NDArray