在TensorFlow中封装类复用变量与模型,仅定义一次计算图与变量
TensorFlow模型封装:单次定义计算图与变量的实现
如果你想在TensorFlow中只定义一次计算图和变量,把相关逻辑封装到类里是非常合适的做法——既能避免重复构建计算图,还能让代码结构更清晰。下面是一个功能简化的最小示例:
import tensorflow as tf import numpy as np class Model: # 定义可训练变量 weights = tf.get_variable("weights", (10, 1)) bias = tf.get_variable("bias", 1) # 定义输入占位符 x = tf.placeholder(tf.float32, (100, 10), "x") y = tf.placeholder(tf.float32, (100,), "y") # 构建计算图:输出计算、损失函数、优化器 output = tf.matmul(x, weights) + bias cost = tf.reduce_sum(tf.abs(output - y)) optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
几个关键细节说明:
- 这里用类属性定义TensorFlow的变量和计算图节点,确保它们只会被创建一次,不会在实例化多个
Model对象时重复构建 - 选择
tf.get_variable而非tf.Variable,能更好地管理变量的命名空间与复用逻辑,避免重复定义的报错 - 占位符
x和y分别对应输入特征与标签数据,维度可以根据你的具体任务需求调整 - 完整的计算图包含了前向传播输出、损失计算,以及用于更新参数的优化器逻辑
内容的提问来源于stack exchange,提问作者PeterHeuz
相关产品推荐
相关产品推荐

