python - 偶尔为变量赋值(占位符与 feed_dict)

标签 python machine-learning tensorflow

我有一个模型,需要每 N 次迭代为权重(可训练变量)分配新的外部值。

我可以想到一些解决方案:

  1. 保存和恢复

    不好,因为我需要序列化,通过文件系统调用等(即使我使用 tmpfs 之类的东西)

  2. 使用占位符和赋值操作

    我将创建一个占位符并为每个可训练变量分配操作。每当我想为权重分配一些东西时,我都会运行分配操作。

    但是,我知道这意味着我将被迫在每个 feed_dict 中考虑这些占位符,并每次在我的图表中运行任何操作时传递虚拟值。

    此外,我会使用比必要的更多的内存。

  3. 使用 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/

相关文章:

python - 如何避免 Pylint 对 Python 3 中继承类的构造函数发出警告?

python - 不同形状的二维数组的乘法

python - 有没有办法使用python将Pdf文件转换为Docx

mobile - TensoFlow可以学习非结构化数据吗?

python - 如何有条件地将值分配给张量[损失函数的掩蔽]?

python - TensorFlow Horovod : NCCL and MPI

machine-learning - 如何添加一个热向量?

azure - 命名实体识别 - 我们是否需要外部列表来匹配结果?

python - 如何使用 Google Colab 从 tensorflow fully_connected 获取权重

python - Tensorflow 中网络权重的线程安全克隆?