我有一个模型,需要每 N 次迭代为权重(可训练变量)分配新的外部值。
我可以想到一些解决方案:
保存和恢复
不好,因为我需要序列化,通过文件系统调用等(即使我使用 tmpfs 之类的东西)
使用占位符和赋值操作
我将创建一个占位符并为每个可训练变量分配操作。每当我想为权重分配一些东西时,我都会运行分配操作。
但是,我知道这意味着我将被迫在每个 feed_dict 中考虑这些占位符,并每次在我的图表中运行任何操作时传递虚拟值。
此外,我会使用比必要的更多的内存。
使用 feed_dict 作为可训练变量并触发将每个变量分配给自身的操作?
这个有用吗?有什么缺点吗?
在编码之前我认为最好先问一下? 有效地(内存/时间)为变量分配新的外部值的推荐方法是什么?
最佳答案
您的第三个选项听起来是最好的。
您可以将值输入 tensors that aren’t placeholders .
TensorFlow's feed mechanism lets you inject data into any Tensor in a computation graph. A python computation can thus feed data directly into the graph.
任何可馈送的张量都可以被馈送。要检查张量是否可馈送,请使用:tf.Graph.is_feedable(tensor)
。
关于python - 偶尔为变量赋值(占位符与 feed_dict),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43572545/