GluonCV, передавая параметры тренеру без model.collect_params () - PullRequest
0 голосов
/ 04 марта 2020

Я пытался выяснить, как использовать объекты 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'>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...