Я пытался выяснить, как использовать объекты Trainer, если вы создаете модель вручную.
Я имею в виду, когда у вас есть предопределенная модель, такая как nn.Sequential, вы можете просто использовать collect_params (), например:
model = nn.Sequential()
[....]
trainer = gluon.Trainer(model.collect_params(), 'sgd', {'learning_rate': some_value})
Но что, если вы создаете модель по-другому? Например, я реализую регрессию softmax, поэтому у меня есть mx.ndarray W, содержащий веса и смещения модели, и функция, возвращающая прогнозы для каждого пакета данных. Как (если возможно) я могу создать трейнер и передать W в качестве параметра?
Я создал элемент параметров с помощью:
params_dict = dict( (j+i*n_feats, W[i][j]) for i in range(len(W)) for j in range(len(W[0])))
и попытался использовать:
trainer = gluon.Trainer(params_dict, 'sgd', {'learning_rate': 0.03})
trainer.step(batch_size)
но он все еще не работает, он возвращает:
ValueError: First argument must be a list or dict of Parameters, got list of <class 'mxnet.numpy.ndarray'>