tf.constant这不是创建一个常量嘛

来源:1-5 Tensorflow&pytorch比较

O_O_似水流年_O_O

2019-06-11

tf.constant这不是创建一个常量嘛, 常量的值不是不允许更改嘛?那x = x + y 这不是更改了原来的值了,请老师赐教

写回答

2回答

正十七

2019-06-16

同学你好,x=x+y不会产生修改原来的值,而是产生了一个新的tensor,只不过用了同样的名字,所以看起来像是改了原来的值了。而变量则是真正的改原来的值。

可以试着运行一下这段代码

x = tf.constant(1.0)
print(x)
y = tf.constant(2.0)
x1 = x + y
x2 = x1 - y
print(x2)
print(x == x) # true
print(x is x) # true
print(x == x2) # false
print(x is x2) # false


1
1
CuteHero
老师的这个例子不恰当吧,x2是新定义的,和x比,肯定不是一个东西啊
2019-07-11
共1条回复

lemonlxn

2019-10-11

老师好,在python中 x = x + y ,这个意思,其实是让x指向一个新的内存地址。

理论上,每次循环,x都指向一个新的内存地址,但运行几遍发现,最后的指向都是最初的内存地址。

这个是因为,设为 constant 常量的关系?


//img.mukewang.com/szimg/5d9ff920097f86e609020854.jpg

//img1.sycdn.imooc.com/szimg/5d9ff92609de68f908940854.jpg


0
1
戴JAVA老师的小迷弟
常量池概念了解一下,存在一个较小的范围(具体范围不记得了)的内存地址是不变的,这是python事先设置好的。
2020-04-07
共1条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程