TensorFlow中变量的相关操作

本文详细介绍了在TensorFlow中如何创建、初始化变量,包括单个变量的初始化、所有变量的批量初始化,以及如何将已初始化变量的值赋给新变量。此外,还探讨了变量的属性和assign方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 变量的创建和初始化

1.1 变量初始化器初始化单个变量,它将变量的初始值赋给变量本身

import tensorflow as tf

x = tf.Variable(5.0,name="x")
weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="weights")
biases = tf.Variable(tf.zeros([4]), name="biases")

with tf.Session() as sess:
    sess.run(x.initializer)
    sess.run(weights.initializer)
    sess.run(biases.initializer)
    print(sess.run(x))
    print(sess.run(weights))
    print(sess.run(biases))
===运行结果:================================================
5.0
[[-0.2839614   0.5196096   0.02286528 -0.85494643]
 [ 0.03473694  0.2069285   0.20748803 -0.74302536]
 [-0.25301403 -0.01969463  0.22524068 -0.09251342]]
[0. 0. 0. 0.]

1.2 对所有变量进行初始化

import tensorflow as tf

x = tf.Variable(5.0,name="x")
weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="weights")
biases = tf.Variable(tf.zeros([4]), name="biases")

init_op = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init_op)
    print(sess.run(x))
    print(sess.run(weights))
    print(sess.run(biases))
===运行结果:================================================
5.0
[[-0.2839614   0.5196096   0.02286528 -0.85494643]
 [ 0.03473694  0.2069285   0.20748803 -0.74302536]
 [-0.25301403 -0.01969463  0.22524068 -0.09251342]]
[0. 0. 0. 0.]

1.3 将已初始化的变量的值赋值给另一个新变量

import tensorflow as tf

weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="weights")
w1 = tf.Variable(weights.initialized_value(), name="w1")
w2 = tf.Variable(weights.initialized_value() * 10, name="w2")
init_op = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init_op)

    print(sess.run(weights))
    print(sess.run(w1))
    print(sess.run(w2))
===运行结果:================================================
[[-0.2839614   0.5196096   0.02286528 -0.85494643]
 [ 0.03473694  0.2069285   0.20748803 -0.74302536]
 [-0.25301403 -0.01969463  0.22524068 -0.09251342]]
 
[[-0.2839614   0.5196096   0.02286528 -0.85494643]
 [ 0.03473694  0.2069285   0.20748803 -0.74302536]
 [-0.25301403 -0.01969463  0.22524068 -0.09251342]]
 
[[-2.839614    5.1960955   0.2286528  -8.549464  ]
 [ 0.34736937  2.0692852   2.0748804  -7.4302535 ]
 [-2.5301404  -0.19694632  2.2524068  -0.9251342 ]]

2 变量的属性assign方法

import tensorflow as tf

weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="w")
weights1 = weights.assign(weights + 1.0)
init_op = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init_op)

    print(sess.run(weights))
    print(sess.run(weights1))
    print("weights的name属性:\n", weights.name)
    print("weights的op属性:\n", weights.op)
===运行结果:================================================
[[-0.2839614   0.5196096   0.02286528 -0.85494643]
 [ 0.03473694  0.2069285   0.20748803 -0.74302536]
 [-0.25301403 -0.01969463  0.22524068 -0.09251342]]
[[0.7160386  1.5196096  1.0228653  0.14505357]
 [1.034737   1.2069285  1.2074881  0.25697464]
 [0.746986   0.9803054  1.2252407  0.90748656]]
weights的name属性:
 w:0
weights的op属性:
 name: "w"
op: "VariableV2"
attr {
  key: "container"
  value {
    s: ""
  }
}
attr {
  key: "dtype"
  value {
    type: DT_FLOAT
  }
}
attr {
  key: "shape"
  value {
    shape {
      dim {
        size: 3
      }
      dim {
        size: 4
      }
    }
  }
}
attr {
  key: "shared_name"
  value {
    s: ""
  }
}
import tensorflow as tf

weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="w")
x = tf.Variable(5.0, name="x")
weights1=weights.assign(weights + x + 1.0)
init_op = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init_op)

    print(sess.run(x))
    print(sess.run(weights))
    print(sess.run(weights1))
===运行结果:================================================
5.0
[[-0.2839614   0.5196096   0.02286528 -0.85494643]
 [ 0.03473694  0.2069285   0.20748803 -0.74302536]
 [-0.25301403 -0.01969463  0.22524068 -0.09251342]]
[[5.7160387 6.5196095 6.0228653 5.1450534]
 [6.034737  6.2069287 6.207488  5.2569747]
 [5.746986  5.980305  6.2252407 5.9074864]]
import tensorflow as tf

v = tf.Variable([1, 2])
init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    print(v.eval(sess))    # 指定会话
    print(v.eval())        # 使用默认会话
===运行结果:================================================
[1 2]
[1 2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值