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

为何已定义xTrain仍报"NameError: name 'xTrain' is not defined"错误?

错误原因及解决办法

错误原因

这个NameError的本质是变量作用域不匹配:

  • xTrain是你在data()函数内部定义的局部变量,Python中局部变量的作用域仅限函数内部,函数外部的代码无法直接访问。
  • 你只完成了data()函数的定义,但从未调用过这个函数,也没有将函数返回的训练数据赋值给全局作用域下的xTrain变量,所以当执行input_shape = xTrain.shape[1:]时,Python找不到名为xTrain的有效变量,就会抛出该错误。

解决方法

你需要先调用data()函数,把它返回的结果赋值给对应变量,之后再去使用这些变量:

# 第一步:调用data函数获取拆分好的数据集
xTrain, yTrain, xVal, yVal = data()

# 第二步:再定义模型相关参数
input_shape = xTrain.shape[1:]
kern_size1 = 3
kern_size2 = 2

# 后续模型构建代码保持不变
model = Sequential()
model.add(Conv2D(256, kernel_size=(kern_size1,kern_size1), activation=None, input_shape=input_shape, name="Conv2D_1",padding="valid", strides=(2,2)))
model.add(BatchNormalization(trainable=True))
model.add(ReLU())
# ...(剩余模型层代码)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:20:36