Tensorflow修改张量特定位置元素的值

张量和array一样可以通过切片获取,但是张量不可以直接修改某个值
可以理解为张量具有“只读”的模式

如果按照数组修改某个值的方式处理的话,会报错:

import tensorflow as tf
tensor_1 = tf.constant([x for x in range(1,10)])
tensor_1[4] = 0    # TypeError: 'Tensor' object does not support item assignment

解决方法:
张量切片,再拼接。比如:

tensor_1 = tf.constant([x for x in range(1,10)])
# 切片
part1 = tensor_1[:4]
part2 = tf.constant([0])   # 要修改的元素
part3 = tensor_1[5:]
# 拼接
new_tensor = tf.concat([part1,part2,part3], axis=0)

值得注意的一点:如果在进行这样的操作的时候代码报错,记得检查每个 part 的维度,大概率是维度这里出了问题。
牢记:原来张量是几维,最后要拼成几维。(比如你的张量是3维的,先要切分成三个2维的,再将二维张量切成1维,修改拼接成2维,再拼接成3维)

下面举一个三维拼接的例子:

import tensorflow as tf
import numpy as npclass tttest():def __init__(self):self.tensor_1 = tf.placeholder(tf.int32, [None, 3])self.part1 = self.tensor_1[:3]self.part2 = self.tensor_1[3]self.part2_1 = self.part2[:1]self.part2_2 = tf.constant([10])self.part2_3 = self.part2[2:]self.part2 = tf.expand_dims(tf.concat([self.part2_1, self.part2_2, self.part2_3], axis=0),0)self.part3 = self.tensor_1[4:]self.t = tf.concat([self.part1, self.part2, self.part3], axis=0)            # 这样写是正确的# self.tensor_1 = tf.concat([self.part1, self.part2, self.part3], axis=0)   # 这样会报错with tf.Session() as sess:init = tf.global_variables_initializer()sess.run(init)fd = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]])a = tttest()print("tensor_1", sess.run(a.part1, {a.tensor_1:fd}))print("tensor_2", sess.run(a.part2, {a.tensor_1:fd}))print("tensor_3", sess.run(a.part3, {a.tensor_1:fd}))print("tensor_3", sess.run(a.t, {a.tensor_1: fd}))

其中,如果将修改后的值还是赋给 tensor_1 会报错如下:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Placeholder' with dtype int32 and shape [?,3][[Node: Placeholder = Placeholder[dtype=DT_INT32, shape=[?,3], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

关于placeholder需要注意的是:不可以重新赋值给placeholder类型的,因为这样会使得 feedfic 的时候 tensorflow 找到两个名字一样但是一个是 placeholder 类型,一个不是,必然会报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团NLP中心算法实习生内推啦!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术部门介绍搜索与NLP部是美团人工智能技术研发的核心团队,致力于打造高性能、高扩展的搜索引擎和领先的自然语言处理核心技术和服务能力,依托搜索排序,NLP(自然语…

B+树 -- MySQL数据库索引

文章目录1. 定义清楚问题2. 尝试学过的数据结构解决问题3. 改造二叉查找树来解决问题4. 总结为了加速数据库中数据的查找速度,我们常对表中数据创建索引。数据库索引是如何实现的呢?底层使用的是什么数据结构和算法呢? 1. 定义清楚问题 如何…

创建python的虚拟环境(图文教程),并使用。

创建python的虚拟环境 第一步:打开anaconda命令行,即打开anaconda prompt。 base的主环境切换到虚拟环境nlp (base) C:\Users\user>conda env list 查看环境列表 (base) C:\Users\user>conda create -n nlp python 创建一个虚拟环境&#xff0…

领域应用 | 到底什么时候使用图数据库?

本文转载自公众号:TigerGraph。图数据库作为近两年快速发展的新型数据受到了市场极大的关注。但对于很多行业而言,图数据库还是一个很新的概念,企业管理人员和技术人员面临着同样的问题:企业的业务适不适合使用图?到底…

常用的后端性能优化六种方式:缓存化+服务化+异步化等

后端优化的六种方法: 1.硬件升级 硬件问题对性能的影响不容忽视。 举一个例子:一个DB集群经常有慢SQL报警,业务排查下来发现SQL都很简单,该做的索引优化也都做了。后来DBA同学帮忙定位到问题是硬件过旧导致,将机械硬…

有钱可以多任性?OpenAI提出人肉模型训练,文本摘要全面超越人类表现!

文 | 小轶背景三个多月前,OpenAI的GPT-3在NLP界掀起轩然大波。就在上周,视金钱如粪土的OpenAI团队又在文本摘要方面推出了最新力作,全方位超越人类表现。其亮点在于:以人类偏好替代自动化评测方法(如ROUGE、BLUE&#…

数据挖掘第一次作业

我先大概写了写,还有一些读过的论文没有往上放,一些论文之间的联系线条没有搞出来。 就先这样吧!有空再搞,我现在想去玩板子啦!

A*搜索算法--游戏寻路

文章目录1. 算法解析2. 总结仙剑奇侠传这类MMRPG游戏中,有人物角色 自动寻路功能。当人物处于游戏地图中某位置时,点击另一个相对较远的位置,人物就会自动地绕过障碍物走过去。这个功能是怎么实现的呢?1. 算法解析 这是一个非常典…

requirements.txt一键安装项目所需要的的python包

pip install -r requirements.txt 后程序出错解决办法https://blog.csdn.net/muguangzhichen/article/details/100572933?depth_1- python 在安装依赖:pip install -r requirements.txt 执行命令时报错的解决办法https://blog.csdn.net/shangdi1988/article/detai…

阿里P8架构师谈:应用后端+移动端的性能优化指标,以及性能优化方法

性能优化专题 阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则 阿里P8架构师谈:Web前端、应用服务器、数据库SQL等性能优化总结 大型网站Web前端优化最佳实践,以及最全优化工具集锦 阿里P8架构师谈:多线程、架构、…

无主题

厦门月亮少 20191003 之前突然遇到个bug,解决好久无果,开始干点别的事情,大约四天后的今天,我打开程序想解决一下,然后,调试半天无果,妈妈突然微信和我聊天了,聊完以后往终端一瞥&a…

PyTorch Trick集锦

文 | z.defying知乎来源 | https://zhuanlan.zhihu.com/p/76459295前言本文整理了13则PyTorch使用的小窍门,包括了指定GPU编号、梯度裁剪、扩展单张图片维度等实用技巧,能够帮助工作者更高效地完成任务。1、指定GPU编号2、查看模型每层输出详情3、梯度裁…

python杂谈

版权 创建虚拟环境 conda create -n your_env_name python3.6.2 pip numpy matplotlib pandas sortedcontainers conda克隆虚拟环境 conda create -n your_env_name --clone old_env_list 激活这个虚拟环境 source activate your_env_name 路径书写格式 windows系统中&#xf…

论文浅尝 | 利用推理链进行视觉问题回答

论文笔记整理:吴杨,浙江大学计算机学院,知识图谱、NLP方向。http://papers.nips.cc/paper/7311-chain-of-reasoning-for-visual-question-answering.pdf动机在视觉问题回答中,较为复杂的问题经常需要多步骤的推理才能够回答&#…

索引 Index -- 快速查找数据

文章目录1. 为什么需要索引2. 索引的需求定义2.1 功能性需求2.2 非功能性需求3. 构建索引常用的数据结构4. 总结索引这种常用的技术解决思路,底层往往会依赖哪些数据结构? 1. 为什么需要索引 实际的软件开发中,它们的本质都可以抽象为“对数…

Tensorflow实现MLP

多层感知机(MLP)作为最典型的神经网络,结构简单且规则,并且在隐层设计的足够完善时,可以拟合任意连续函数。本文将利用 MLP 实现手写数字分类的任务。 结构:   784个输入层神经元 – 200个隐层神经元 –…

阿里P8架构师谈:数据库、JVM、缓存、SQL等性能调优方法和原则

编辑 性能优化基本是BAT等一线互联网公司程序员必备的技能,以下为大家完整揭晓性能完整的优化方案和方法:包含web网站调优、数据库、JVM调优、架构调优等方案。 第一:Web网站调优 1、尽可能减少HTTP请求:图片合并 (cs…

知乎招聘搜索算法实习生!邀你共建知乎搜索引擎!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术部门介绍搜索算法团队是知乎核心算法团队之一,负责知乎搜索框背后的各项算法工作。我们团队一直非常重视新技术在搜索场景的探索和落地,包括但不限于 NLP,排序,…

并行算法 Parallel Algorithm -- 提高执行效率

文章目录1. 并行排序2. 并行查找3. 并行字符串匹配4. 并行搜索5. 总结时间复杂度是衡量算法执行效率的一种标准。但是,时间复杂度 ! 性能。即便在不降低时间复杂度的情况下,也可以通过一些优化手段,提升代码的执行效率。即便是像10%、20%这样…

论文浅尝 | 主题感知的问答生成

Citation: XingC, Wu W, Wu Y, et al. Topic aware neural response generation[C]//Thirty-FirstAAAI Conference on Artificial Intelligence. 2017.动机人机对话在 AI 和 NLP 领域是一项具有挑战性的工作。现存的对话系统包括任务导向的对话系统和非任务导向的聊天机器人。在…