Вы не можете сделать это напрямую, используя dynet API.
У каждого параметра есть имя, которое вы можете указать с помощью ключевого аргумента name
.Пример:
pW = model.add_parameter((12, 12), name="W")
Однако ( source ):
Имена используются для определения параметров и иерархии коллекции при загрузке с диска и вособенно при загрузке только подмножества объектов в сохраненном файле.
...
Можно указать необязательное информативное имя при создании параметра или подгруппы.Затем к указанным именам добавляется текущий индекс, чтобы избежать конфликта имен.
Таким образом, вы не можете получить соответствующий параметр на основе объекта ParameterCollection
и имени (ну, вы могли бы, но я бы не советовал).
Так чтоОбычная практика для достижения, когда вам нужно, это использовать словарь:
import dynet as dy
def dosomething(model, params):
pW = params["W"]
pb = params["b"]
#...
def create():
model = dy.ParameterCollection()
params = {}
params["W"] = model.add_parameters((12, 12))
params["b"] = model.add_parameters((12, ))
#...
dosomething(model, params)
create()