在MLP编写时遇到了一个问题

使用《简单粗暴的tensorflow2 》编写MLP程序时,出现了如下错误:

AttributeError: ‘MNISTLoader’ object has no attribute ‘num_train_data’

但MNISTLoader的程序如下:
class MNISTLoader():
def init(self):
mnist = tf.keras.datasets.mnist
(self.train_data, self.train_label), (self.test_data, self.test_label) = mnist.load_data()
# MNIST中的图像默认为uint8(0-255的数字)。以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为颜色通道
self.train_data = np.expand_dims(self.train_data.astype(np.float32) / 255.0, axis=-1) # [60000, 28, 28, 1]
self.test_data = np.expand_dims(self.test_data.astype(np.float32) / 255.0, axis=-1) # [10000, 28, 28, 1]
self.train_label = self.train_label.astype(np.int32) # [60000]
self.test_label = self.test_label.astype(np.int32) # [10000]
self.num_train_data, self.num_test_data = self.train_data.shape[0], self.test_data.shape[0]

def get_batch(self, batch_size):
    # 从数据集中随机取出batch_size个元素并返回
    index = np.random.randint(0, self.num_train_data, batch_size)
    return self.train_data[index, :], self.train_label[index]

我观察发现MNISTLoade里面有num_train_data,不知道为什么会报错。可以帮我解答一下吗?

@snowkylin Xihan 来帮忙看看?

请给出一段完整可执行的代码,单纯看这个我也不知道为什么。正如你所说,MNISTLoader里面是有num_train_data的。