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

TensorFlow报错:'Session'对象无'_session'属性,求解决方案

解决TensorFlow中AttributeError: 'Session' object has no attribute '_session'问题

嘿,这个问题我之前踩过相似的坑,确实是你使用tf.Graph()的方式出了问题!咱们一步步拆解来理清楚:

错误根源

你现在的代码里,所有变量(W1、Bias2这类)、占位符(X、Y)和计算节点都是在默认全局图里创建的,但你却用一个全新的loaded_graph来初始化Session——这就导致Session关联的图和变量所在的图完全不匹配,自然会抛出奇怪的属性错误。而且tf.train.Saver也是在默认图的上下文里创建的,它根本找不到你新图里的变量。

修正方案

你需要把整个网络的构建逻辑都包裹在新创建的图的默认上下文里,确保所有图元素都属于这个独立的图。修正后的代码大概是这样:

for i in range(num_networks):
    print("Neural network: {0}".format(i))

    # 创建新图,并把后续所有操作都放到这个图的上下文里
    loaded_graph = tf.Graph()
    with loaded_graph.as_default():
        # 所有占位符、变量、计算节点都在这里定义
        X = tf.placeholder(tf.float32)
        Y = tf.placeholder(tf.float32)

        W1 = tf.Variable(tf.random_uniform([n_input, n_hidden], -1.0, 1.0), name = 'W1')
        W2 = tf.Variable(tf.random_uniform([n_hidden, n_output], -1.0, 1.0), name = 'W2')

        b1 = tf.Variable(tf.zeros([n_hidden]), name="Bias1")
        b2 = tf.Variable(tf.zeros([n_output]), name="Bias2")

        L2 = tf.sigmoid(tf.matmul(X, W1) + b1)
        hy = tf.sigmoid(tf.matmul(L2, W2) + b2, name="op_to_restore")

        cost = tf.reduce_mean(-Y*tf.log(hy) - (1-Y)*tf.log(1-hy))
        optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

        init = tf.global_variables_initializer()
        # Saver也要在这个图的上下文里创建,这样它才能关联当前图的变量
        saver = tf.train.Saver()

    # 现在用这个正确关联了所有元素的图来启动Session
    with tf.Session(graph=loaded_graph) as sess:
        sess.run(init)
        # 后续的训练、保存操作都在这里执行
        ...

关键注意点

  • 每次循环创建新网络时,都要把tf.Graph()的定义放在循环里,然后用with loaded_graph.as_default()把所有网络构建代码包起来。
  • tf.train.Saver必须在对应的图上下文里初始化,否则它会绑定到默认图,找不到你新图里的变量。
  • 启动Session时,明确指定graph=loaded_graph(或者像你之前那样把图传入Session构造器,两种方式都可以),确保Session和图的关联正确。

这样既解决了最初的变量名重复问题,也不会再出现Session的属性错误啦!

内容的提问来源于stack exchange,提问作者gonzalloe

相关产品推荐
方舟 Agent Plan

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

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