簡體   English   中英

為什么我會收到錯誤“NameError: name 'xTrain' is not defined”,盡管它已定義?

[英]Why do i get the error "NameError: name 'xTrain' is not defined" although it is defined?

def data():
  xTrain, xVal, yTrain, yVal = train_test_split(X_data, Y_Labels, test_size=0.1, random_state=42) # checked
  return xTrain, yTrain, xVal, yVal
# Define the model (CNN) for single source localization
input_shape = xTrain.shape[1:]
kern_size1 = 3
kern_size2 = 2

model = Sequential() # kernel_regularizer=l1(0.00001),
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())
model.add(Conv2D(256, kernel_size=(kern_size2,kern_size2), activation=None,name="Conv2D_2", padding="valid"))
model.add(BatchNormalization(trainable=True))
model.add(ReLU())
model.add(Conv2D(256, kernel_size=(kern_size2,kern_size2), activation=None,name="Conv2D_3", padding="valid"))
model.add(BatchNormalization(trainable=True))
model.add(ReLU())
model.add(Flatten())
model.add(Dense(4096, activation="relu",name="Dense_Layer1"))
model.add(Dropout(0.2,name="Dropout1"))
model.add(Dense(2048, activation="relu",name="Dense_Layer2"))
model.add(Dropout(0.2,name="Dropout2"))
model.add(Dense(1024, activation="relu",name="Dense_Layer3"))
model.add(Dropout(0.2,name="Dropout3"))
model.add(Dense(DNN_outp, activation="sigmoid", kernel_initializer=glorot_normal(seed=None),name="Classif_Layer"))
model.summary()

這是代碼。 我定義了 xTrain,但它在行 ----> [2] input_shape = xTrain.shape[1:] 說 NameError: name 'xTrain' is not defined 給我一個錯誤。 為什么會這樣?

您必須刪除 function data()並僅保留xTrain, xVal, yTrain, yVal = train_test_split(X_data, Y_Labels, test_size=0.1, random_state=42)或使用input_shape = data()[0].shape[1:] 發生這種情況是因為您的data() function 返回的是列表列表而不是單獨的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM