Feedback on converting a 2D array into a 3D array of images for CNN training

I would start with some sanity checks to make sure that everything is expected e.g.,
assert len(self.x_data) == 70000
assert len(self.y_data) == 70000
I would then check that the initial loss is roughly -ln(1/num_classes) or in this case: ~2.30258509299.

As for inspecting that a batch of images looks as expected, you can convert the tensor back to a numpy array and save an image from there: Converting tensors to images

From there I would check if the training accuracy goes to 100 when the training set is very small and reused as the test set.