gpt4 book ai didi

python - CNTK:克隆单层

转载 作者:行者123 更新时间:2023-11-30 09:48:53 24 4
gpt4 key购买 nike

我当前的目标是从已训练的模型中克隆单个层。

第一个问题是 clone() 方法从提供的节点克隆整个图,这不是我想要的。

因此,我尝试通过从节点检索其权重来手动克隆它(在本例中为密集层),如下所示:

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 &'

最佳答案

clone() 方法不一定克隆整个图。它允许您通过 substitutions 参数“剪出”一张图。 substitutions 参数指定要克隆的图形部分的输入节点;基本上是你想剪切的地方。

例如,要克隆堆栈的中间层,请识别

  • 它的根,我们称之为layer_root
  • 其输入。假设有一个输入节点,您将其存储为 layer_input

然后您应该能够根据以下代码草图克隆这部分:

substitutions = {
layer_input : C.placeholder(name='cloned_layer_input')
}
cloned_layer = layer_root.clone(clone_method, substitutions)

替换将导致clone()在命中layer_input后停止克隆,并在克隆中将其替换为占位符。

结果将是一个可调用的,就像层库的任何层(如C.Dense())或使用@C.Function定义的任何函数一样,我相信您正在寻找的东西。

关于python - CNTK:克隆单层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com