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

TensorFlow报错Attempting to use uninitialized value beta1_power_18 求解决方案

解决TensorFlow中“Attempting to use uninitialized value beta1_power_18”错误

这个错误的核心原因是TensorFlow中的变量(包括优化器内部维护的变量,比如Adam的beta1_power、beta2_power)没有被正确初始化。你代码里只创建了InteractiveSession,但没有执行变量初始化的操作,导致运行时这些变量还未被赋值就被调用了。

具体解决方案

在创建会话之后,必须添加全局变量初始化的操作,确保所有变量(包括你定义的网络权重、偏置,以及优化器自动生成的内部变量)都被正确初始化:

修正后的代码示例

import tensorflow as tf
import numpy as np

class Model:
    def __init__(self, input_neuron=2, hidden_neuron=10, output_neuron=2):
        self.input_neuron = input_neuron
        self.hidden_neuron = hidden_neuron
        self.output_neuron = output_neuron
        self.x = tf.placeholder(tf.float32, [None, self.input_neuron])
        self.y = tf.placeholder(tf.float32, [None, self.output_neuron])
        self.model = self.graph()
        self.sess = tf.InteractiveSession()
        # 关键步骤:初始化所有全局变量
        self.sess.run(tf.global_variables_initializer())

    def graph(self):
        # 示例网络结构,可根据你的实际代码调整
        w1 = tf.Variable(tf.random_normal([self.input_neuron, self.hidden_neuron]))
        b1 = tf.Variable(tf.zeros([self.hidden_neuron]))
        hidden = tf.nn.relu(tf.matmul(self.x, w1) + b1)
        
        w2 = tf.Variable(tf.random_normal([self.hidden_neuron, self.output_neuron]))
        b2 = tf.Variable(tf.zeros([self.output_neuron]))
        output = tf.matmul(hidden, w2) + b2
        
        # 若使用Adam优化器,会自动生成beta1_power等内部变量,这些也需要初始化
        loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=output, labels=self.y))
        optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(loss)
        return output

原理说明

tf.global_variables_initializer()会遍历TensorFlow图中所有的全局变量(包括你手动定义的Variable,以及优化器如AdamOptimizer创建的辅助变量),并为它们分配预设的初始值。只有执行了这个操作,后续的模型计算才能正常调用这些变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:29:17