【发布时间】:2018-02-02 12:05:13
【问题描述】:
我目前的目标是从已经训练好的模型中克隆一个层。
第一个问题是clone() 方法从提供的节点克隆了整个图,这不是我想要的。
所以我尝试通过从节点检索其权重来手动克隆它(在本例中为 Dense 层),如下所示:
node = C.logging.graph.find_by_name(model, 'node')
C.layers.Dense(node.shape, init=node.W.value, init_bias=node.b.value)
不幸的是,这不起作用,因为我收到以下可疑错误:
TypeError: in method 'random_initializer_with_rank', argument 1 of type 'CNTK::ParameterInitializer const &'
【问题讨论】:
-
C.layers.Dense(node.shape, init=node.W.value, init_bias=node.W.value)可能不正确,因为您正在尝试使用node.W.value初始化权重和偏差,但我自己尝试了一个小例子并得到了同样的错误,这很奇怪,因为python API 文档声明 init 和 init_bias 应该处理 np 数组 -
哎呀,这是一个错字。我正确使用了
node.b.value并得到了那个错误。 -
是的,我还创建了一个 MWE 并重新创建了确切的错误消息。有趣的是,虽然我能够对卷积层做同样的事情并且它工作正常
标签: python machine-learning deep-learning cntk