.. default-domain:: chpl .. module:: MNISTNet MNISTNet ======== **Usage** .. code-block:: chapel use MNISTNet; or .. code-block:: chapel import MNISTNet; .. data:: config param layerDebug = false .. type:: type dtype = real(32) .. class:: CNN : Module(?) .. attribute:: var conv1: owned(Conv2D(eltType)) .. attribute:: var conv2: owned(Conv2D(eltType)) .. attribute:: var dropout1: owned(Dropout(eltType)) .. attribute:: var dropout2: owned(Dropout(eltType)) .. attribute:: var flatten: owned(Flatten(eltType)) .. attribute:: var fc1: owned(Linear(eltType)) .. attribute:: var fc2: owned(Linear(eltType)) .. method:: proc init(type eltType = dtype) .. method:: override proc forward(input: Tensor(eltType)): Tensor(eltType) .. data:: config const diag = false .. data:: var cnn = new CNN(dtype) .. data:: var model = Network.loadModel(specFile = "../scripts/models/cnn/specification.json", weightsFolder = "../scripts/models/cnn/", dtype = dtype) .. data:: config const testImgSize = 28 .. data:: var img = Tensor.load("data/datasets/mnist/image_idx_0_7_7.chdata"): dtype .. data:: const modelPath = "data/models/mnist_cnn/" .. data:: var output = cnn(img) .. data:: config const imageCount = 0 .. data:: var images = forall i in 0..<imageCount do Tensor.load("data/datasets/mnist/image_idx_" + i : string + ".chdata") : dtype .. data:: var preds: [images.domain] int .. data:: config const numTimes = 1 .. data:: config const printResults = false .. data:: var cnn2 = new Sequential(real, (new Conv2D(real, channels = 1, features = 32, kernel = 3, stride = 1)?, new Conv2D(real, channels = 32, features = 64, kernel = 3, stride = 1)?, new Dropout(real, 0.25)?, new Dropout(real, 0.5)?, new Flatten(real)?, new Linear(real, 9216, 128)?, new Linear(real, 128, 10)?))