You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:19:10