embedding.assign(embedding_input)的解读
1.这个问题是来自Tensorboard可视化过程中
2.embedding.assign(embedding_input)这个语句的用法是什么?
简单的讲,就是把embedding_input赋值给embedding,当然这里的量全是tensor
那为什么不使用简单的embedding = embedding_input呢?
因为一般来讲,完整的式子是:
assignment = embedding.assign(embedding_input)
表达的意思是:
用被embedding_input赋值的embedding传给assignment
这一个等式完成了多种运算,根据下面我给出的比较代码可以看出,sess.run(embedding)后发现,embedding的值也变了。
这其实和我们传统意义上对tensor的操作是不同的,比如tf.reshape()或embedding.reshape()
这种类型的语句并不会改变原来tensor的shape,而是通过
embedding = embedding.reshape()的形式间接改变变量shape的。
3.embedding.assign(embedding_input)与tf.assign(embedding ,embedding_input)是等效的操作
4.最后贴上这几个的对比代码(有详解):
import tensorflow as tf
import numpy as np
# assign用法
embedding_size = 3
embedding = tf.Variable(tf.zeros([1024, embedding_size]), name="test_embedding")
embedding_input = tf.Variable(tf.constant(1.0, shape=(1024, embedding_size)))
assignment = embedding.assign(embedding_input) # 将embedding_input赋给embedding,然后embedding间接传给了assignment
a = np.random.random(size=[1024, embedding_size]) # 建立实际feed值
sess = tf.Session() # 建立会话
b = sess.run(assignment, feed_dict={embedding_input: a}) # 执行给b赋值的功能,注意assignment仍是tensor
print(b)
c = sess.run(embedding)
print(c) # 说明assign的操作可以让embedding的值改变# 换用tf.assign()也可以
embedding_size = 3
embedding = tf.Variable(tf.zeros([1024, embedding_size]), name="test_embedding")
embedding_input = tf.Variable(tf.constant(1.0, shape=(1024, embedding_size)))
assignment = tf.assign(embedding, embedding_input) # 将embedding_input赋给embedding,然后embedding间接传给了assignment
a = np.random.random(size=[1024, embedding_size]) # 建立实际feed值
sess = tf.Session() # 建立会话
b = sess.run(assignment, feed_dict={embedding_input: a}) # 执行给b赋值的功能,注意assignment仍是tensor
print(b)
# 如果在这里将上面的会话结束,则所有的值都会被清空
# sess.close()
c = sess.run(embedding)
print(c) # 说明assign的操作可以让embedding的值改变# 对比下如果是像tf.reshape的函数,会改变吗
#%%
import tensorflow as tf
embedding_size = 3
embedding = tf.zeros([1024, embedding_size], name="test_embedding")
tf.reshape(embedding, shape=(32, 32, embedding_size))
sess = tf.Session() # 建立会话
array = sess.run(embedding)
print(array.shape)
# 实验结果表明,embedding的shape并不会变为32,32,3
#%%# 其实直接赋值也可以
embedding_size = 3
# embedding = tf.Variable(tf.zeros([1024, embedding_size]), name="test_embedding")
embedding_input = tf.Variable(tf.constant(1.0, shape=(1024, embedding_size)))
# assignment = embedding.assign(embedding_input) # 将embedding_input赋给embedding,然后embedding间接传给了assignment
assignment = embedding_input
a = np.random.random(size=[1024, embedding_size]) # 建立实际feed值
sess = tf.Session() # 建立会话
b = sess.run(assignment, feed_dict={embedding_input: a}) # 执行给b赋值的功能,注意assignment仍是tensor
print(b)
5.本人现在的研究方向是:图像的语义分割,如果有志同道合的朋友,可以组队学习
haiyangpengai@gmail.com
embedding.assign(embedding_input)的解读相关推荐
- d3设置line长度_万物皆可Embedding之LINE算法解读
需要论文的朋友可以后台私信我获取 前言 上一篇文章给大家带来了Graph Embedding技术中的代表算法Deepwalk,今天给大家介绍graph embedding又一代表算法--LINE,LI ...
- d3设置line长度_Graph Embedding之LINE算法解读
需要论文的朋友可以后台私信我获取 前言 上一篇文章给大家带来了Graph Embedding技术中的代表算法Deepwalk,今天给大家介绍graph embedding又一代表算法--LINE,LI ...
- 那些TensorFlow上好玩的和黑科技
那些TensorFlow上好玩的和黑科技 Google于2017年2月16日(北京时间)凌晨2点在美国加利福尼亚州山景城举办了首届TensorFlow开发者峰会.Google现场宣布全球领先的深度学习 ...
- 【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技
[导读]TensorFlow 在 2015 年年底一出现就受到了极大的关注,经过一年多的发展,已经成为了在机器学习.深度学习项目中最受欢迎的框架之一.自发布以来,TensorFlow 不断在完善并增加 ...
- 论文解读:Hierarchical Topic Mining via Joint Spherical Tree and Text Embedding(通过联合球面树和文本进行的层次主题挖掘)
本文是知识发现与数据挖掘的大作业,主要是对论文<Hierarchical Topic Mining via Joint Spherical Tree and Text Embedding> ...
- 神经网络架构搜索(NAS)综述 | 附AutoML资料推荐
本文是一篇神经网络架构搜索综述文章,从 Search Space.Search Strategy.Performance Estimation Strategy 三个方面对架构搜索的工作进行了综述,几 ...
- 自然语言处理和计算机视觉相关论文总结
自然语言处理 命名实体识别 论文名称 期刊/会议 时间 解读 特点 代码 Unified Named Entity Recognition as Word-Word Relation Classifi ...
- 论文解读:(TransH)Knowledge Graph Embedding by Translating on Hyperplanes
转自: https://blog.csdn.net/qq_36426650/article/details/103336589?utm_medium=distribute.pc_relevant.no ...
- 【论文解读 ICLR 2020 | Jure Leskovec组】Query2box: Reasoning over KGs in Vector Space using Box Embedding
论文题目:Query2box: Reasoning over Knowledge Graphs in Vector Space using Box Embeddings 论文来源:ICLR 2020 ...
最新文章
- 60、IPv6配置实验之RIP
- logicaldoc 6.5 结合postgresql 9.x安装部署—基于windows平台
- 撕起来了!谁说数据少就不能用深度学习?这锅俺不背!
- termux怎么安装python库_Python termux-apt-repo包_程序模块 - PyPI - Python中文网
- 太优秀了!GitHub 标星 40000+ 的大佬和他们的公众号
- android程序运行无操作一段时间显示屏保
- JavaScript基础总结(五)——Math对象
- 如何使用Puppeteer从任何网站创建自定义API
- SpringCloud入门之Maven系统安装及配置
- 标签select选择框通过js来选择默认值;代码示例
- lg android tv 手机助手,手机如何投屏到LG电视的教程来了!
- 小红书去水印代码_最新小红书视频去水印解析API接口
- wake on lan 实现远程开机(远程开关机程序)
- Nii切片->2D ndarray灰色图->PIL灰色图->PIL RGB彩色图
- 小型餐厅管理系统 java_小型餐饮管理系统的设计与实现(JSP,MySQL)
- Java开发报表——Grid++Report 报表设计器
- VB对IE浏览器完全控制
- 开源分布式存储系统的对比
- MySQL数据库-表的插入详解
- 【模拟 简易银行系统~python】
热门文章
- oracle time model,通过案例学调优之--OracleTimeModel(时间模型)
- oracle密码锁屏时间,Oracle Linux OEL7 如何关闭屏保和锁屏功能
- qcustomplot绘制热力图瀑布图_使用REmap绘制中国地图
- ~~Kruskal算法
- JNI编程中数据类型转换的方法
- 集合 (一) ----- 集合的基本概念与Collection集合详解
- Java基础复习——继承机制
- linux:C++的socket编程
- mysql Split函数
- TP框架中ajax post请求时提示404