TensorFlow while_loop 将变量转换为常量?

2023-12-28

我正在尝试更新嵌套中的二维张量while_loop()。但是,当将变量传递给第二个循环时,我无法使用tf.assign()因为它抛出这个错误:

ValueError: Sliced assignment is only supported for variables

不知怎的,如果我在 while_loop 之外创建变量并仅在第一个循环中使用它,它就可以正常工作。

如何在第二个 while 循环中修改我的 2D tf 变量?
(我使用的是 python 2.7 和 TensorFlow 1.2)

My code:

import tensorflow as tf
import numpy as np

tf.reset_default_graph()

BATCH_SIZE = 10
LENGTH_MAX_OUTPUT = 31

it_batch_nr = tf.constant(0)
it_row_nr = tf.Variable(0, dtype=tf.int32)
it_col_nr = tf.constant(0)
cost = tf.constant(0)

it_batch_end = lambda it_batch_nr, cost: tf.less(it_batch_nr, BATCH_SIZE)
it_row_end = lambda it_row_nr, cost_matrix: tf.less(it_row_nr, LENGTH_MAX_OUTPUT+1)

def iterate_batch(it_batch_nr, cost):
    cost_matrix = tf.Variable(np.ones((LENGTH_MAX_OUTPUT+1, LENGTH_MAX_OUTPUT+1)), dtype=tf.float32)
    it_rows, cost_matrix = tf.while_loop(it_row_end, iterate_row, [it_row_nr, cost_matrix])
    cost = cost_matrix[0,0] # IS 1.0, SHOULD BE 100.0
    return tf.add(it_batch_nr,1), cost

def iterate_row(it_row_nr, cost_matrix):
    # THIS THROWS AN ERROR:
    cost_matrix[0,0].assign(100.0)
    return tf.add(it_row_nr,1), cost_matrix

it_batch = tf.while_loop(it_batch_end, iterate_batch, [it_batch_nr, cost])

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
out = sess.run(it_batch)
print(out)

tf.Variable对象不能用作 while 循环中的循环变量,因为循环变量的实现方式不同。

因此,要么在循环外部创建变量,并在每次迭代中使用 tf.assign 自行更新它,要么像处理循环变量一样手动跟踪更新(通过从循环 lambda 返回其更新值,在您的情况下使用值从内循环作为外循环的新值)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TensorFlow while_loop 将变量转换为常量? 的相关文章

  • 学习Python中的解析器

    我记得我读过有关解析器的内容 您只需提供一些示例行 它就知道如何解析某些文本 它只是确定两条线之间的差异 以了解可变部分是什么 我以为它是用 python 写的 但我不确定 有谁知道那是什么图书馆吗 可能你的意思是模板制作器 http co
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • pandas read_csv 之前预处理数据文件

    我使用 SAP 的数据输出 但它既不是 CSV 因为它不引用包含其分隔符的字符串 也不是固定宽度 因为它具有多字节字符 它是一种 固定宽度 字符 为了将其放入 pandas 我当前读取文件 获取分隔符位置 对分隔符周围的每一行进行切片 然后
  • 我可以在 matplotlib 中的绘图左侧放置一个垂直颜色条吗?

    来自颜色条方法的 matplotlib 命令摘要 http matplotlib org api pyplot api html highlight colorbar matplotlib pyplot colorbar我知道关键字参数or
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • Discord.py 斜线命令在 cogs 中不起作用

    我正在构建一个不和谐的机器人 并且想要在 cogs 内使用斜杠命令 但这些命令不显示或工作 这是代码 cog guild ids 858573429787066368 861507832934563851 class Slash comma
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • 获取字符串模板中所有标识符列表的函数(Python)

    对于标准库string template在Python中 有没有一个函数可以获取所有标识符的列表 例如 使用以下 xml 文件
  • 将列表值转换为 pandas 中的行

    我有数据帧 其中一列具有相同长度的 numpy ndarray 值 df list 0 Out 92 array 0 0 0 0 29273096 0 30691767 0 27531403 我想将这些列表值转换为数据框并从 df iloc
  • argparse 不检查位置参数

    我正在创建一个脚本 它使用 argparse 接受位置参数和可选参数 我已经阅读了 Doug 的教程和 python 文档 但找不到答案 parser argparse ArgumentParser description script t
  • 尝试校准keras模型

    我正在尝试通过 Sklearn 实现来校准我的 CNN 模型CalibratedClassifierCV 尝试将其包装为KerasClassifier并覆盖预测功能但没有成功 有人可以说我做错了什么吗 这是模型代码 def create m
  • 如何在 python 中使用交叉验证执行 GridSearchCV

    我正在执行超参数调整RandomForest如下使用GridSearchCV X np array df features all features y np array df gold standard labels x train x
  • Pandas 中每列的曲线拟合 + 外推值

    我有一个包含大约 300 列的数据集 每一列都与深度相关 Pandas DataFrame 的简化版本看起来像这样 import matplotlib pyplot as plt import numpy as np import pand
  • Python GTK3 Treeview 向上或向下移动选择

    如何在树视图中向上或向下移动所选内容 我的想法是 我可以使用向上和向下按钮将选择向上移动一行或向下移动一行 我的 Treeview 使用 ListStore 不确定这是否重要 首先 我将使用我熟悉的 C 代码 如果您在将其翻译为 Pytho
  • 为什么我无法杀死 k8s pod 中的 python 进程?

    我试图杀死一个 python 进程 ps aux grep python root 1 12 6 2 1 2234740 1332316 Ssl 20 04 19 36 usr bin python3 batch run py root 4
  • 在 4K 屏幕上使用 Matplotlib 和 TKAgg 或 Qt5Agg 后端

    我在 Ubuntu 16 04 上使用 Matplotlib 2 0 和 Python 3 6 来创建数据图 电脑显示器的分辨率为 4k 分辨率为 3840x2160 绘图数字看起来非常小 字体也很小 我已经尝试过TKAgg and Qt5
  • 为什么我会在 Python 字符串格式中使用除 %r 之外的其他内容?

    我偶尔会使用 Python 字符串格式 这可以像这样完成 print int i Float f String s 54 34 434 some text 但是 这也可以这样做 print int r Float r String r 54
  • 将二进制数转换为包含每个二进制数的数组

    我试图将二进制值转换为每个 1 0 的列表 但我得到默认的二进制值而不是列表 我有一个字符串 我将每个字符转换为二进制 它给了我一个列表 其中每个字符都有一个字符串 现在我试图将每个字符串拆分为值为 0 1 的整数 但我什么也得不到 if
  • 如何在不同的目录中执行python脚本?

    Solved对于可能觉得这有帮助的人 请参阅下面我的答案 我有两个脚本 a py 和 b py 在我当前的目录 C Users MyName Desktop MAIN 中 我运行 gt python a py 第一个脚本 a py 在我当前
  • 美丽的汤刮 - 登录凭据不起作用

    尝试使用登录凭据抓取页面 payload email gmail com password urls login url https www spotrac com signin url https www spotrac com nba

随机推荐

  • ActiveMQ - 是否可以在 CLIENT_ACKNOWLEDGE 模式下确认单个消息

    根据http docs oracle com javaee 6 api javax jms Message html acknowledge http docs oracle com javaee 6 api javax jms Messa
  • 适用于 Android 的 Flurry 错误报告

    有没有人使用 Flurry 生成未捕获异常的报告 可以发布一些有关如何执行此操作的示例代码 我没有看到任何通过 Flurry 本身的示例 尽管我已经看到了自定义异常报告器的代码示例 但我还没有看到如何仅使用 Flurry 实现基本错误报告的
  • 我需要帮助使用 dataweave 以 xml 格式输出“大于”和“小于”字符

    我有以下数据编织代码 dw 2 0 output xml writeDeclaration false a b lt 当前输出是
  • 添加具有默认值的新列,而不是现有行

    alter table report add favourite film VARCHAR2 100 DEFAULT Star Wars 这会添加一个具有默认值的新列 但在我看来 它还会在所有预先存在的行上设置默认值 而不是将它们保留为空
  • 在iPhone中绘制空心圆

    i need to draw the following image 灰色部分是我想在另一张图像上绘制的内容 我需要使用 CGContext 方法使用的代码是什么 我尝试使用 CGContextAddArc 但失败了 因为当我填充笔划时 中
  • TestWatcher 和 TestNG

    All 我使用 JUnit 和 TestWatcher 以及 Selenium Java 在失败和成功时使用 TestWatcher 我调用错误跟踪工具 API 来锁定测试用例和缺陷 我现在想要生成 Selenium 测试运行的报告并锁定测
  • 如何在 VBA 中格式化文本/字符串?

    在下面的代码中 我采用一些输入参数 文本或单元格 并使用我需要的格式将它们组合起来形成一个字符串 我需要将 Task Name 以及 Lead 等文本设为粗体 我知道你不能将文本设置为粗体 但我该怎么做呢 我存储值的这个单元格最终会在 Wo
  • 如何确定远程通道是否已注册

    在我的 ASP NET 应用程序中 全局应用程序启动事件中有一行通过调用 Remoting Configuration Configure 来配置客户端远程处理通道 这第一次运行良好 但是当我的 Web 应用程序被回收时 应用程序启动事件再
  • 包含的 C++/C 头文件的实现在哪里?

    这可能看起来有点愚蠢 但这已经困扰了一段时间了 当我在我的C C程序中包含一些别人编写的头文件时 编译器如何知道头文件中声明的类成员函数的实现在哪里 假设我想编写一些利用 OpenCV 库的程序 通常我想使用 include
  • 从服务器获取图像并在客户端预览

    所以我试图从服务器获取图像并在客户端上预览它 我现在可以检索图像 但我不知道如何在网页上异步预览它 axios get link responseType stream then img gt What i have to do here
  • InnoSetup (Pascal):FileExists() 未找到每个文件

    看来 我想用 FileExists 检查的某些文件即使存在也永远找不到 而其他文件每次都会找到 如果我将文件 driver sys 放入 C Windows System32 drivers 目录中 则永远不会找到它 每次调用该函数时 Fi
  • PHP Soap 问题:服务器无法处理请求。 ---> 未将对象引用设置为对象的实例

    我正在使用 PHP 5 2 5 5 和 Moodle 1 9 当我进行不带参数的简单 SOAP 调用时 它可以工作 但是 一旦我使用带参数的调用 它就会失败 如果我使用 Fiddler 捕获 SOAP 请求 我会发现它根本没有将参数添加到
  • 使用 LINQ 在父对象列表中查找子对象

    给定一个父对象列表 每个父对象都有一个子对象列表 我想找到与特定 ID 匹配的子对象 public class Parent public int ID get set public List
  • XAML 错误:“属性‘VisualTree’被设置多次”

    我正在尝试将两个网格放入数据模板中 我的代码出现以下错误 如下所示 错误 多次设置属性 VisualTree
  • 如何将 REST 调用 JSON 响应附加到 jQuery 数据表?

    我正在尝试在 jQuery 中显示 REST 调用 JSON 响应数据表 http datatables net 以下是我收到的 JSON 响应 artifact artifactId I8cc4a96ef69a11e08b448cf533
  • Google Analytics 测量协议

    我尝试使用谷歌分析来跟踪一些更多的自定义数据 所以我想我使用这些事件 以下是我尝试替换的代码uuid and user agent
  • 等待 ajax 请求时显示微调器并禁用页面

    我有一个项目 其中使用 MVC C Bootstrap 和 FontAwesome 我的目标是在等待 ajax 请求时显示一个微调器并禁用该页面 到目前为止 我已经通过以下代码成功完成了这个目标 HTML div style display
  • Delphi:ADOConnection、DBASE3 和字符集(错误?)

    Delphi XE3 Win7 教授 我需要写入 DBASE 3 旧格式 文件以导出类似 DOS 应用程序 Clipper 的数据 好吧 我想 MS DBASE 驱动程序可以做到这一点 但我对匈牙利口音有疑问 我尝试了这个连接字符串 Dri
  • 如何完全删除Subclipse插件?

    我在从 Eclipse 配置中删除 Subclipse 时遇到问题 由于 m2eclipse 项目放弃了对 Subclipse 的支持 我决定切换到 Subversive 因此 我卸载了 Subclipse 然后使用 关于 Eclipse
  • TensorFlow while_loop 将变量转换为常量?

    我正在尝试更新嵌套中的二维张量while loop 但是 当将变量传递给第二个循环时 我无法使用tf assign 因为它抛出这个错误 ValueError Sliced assignment is only supported for v