Wolfram Neural Net Repository
Immediate Computable Access to Neural Net Models
Identify the handwritten digit in an image
Number of layers: 52 | Parameter count: 8,141,840 | Trained size: 33 MB |
This model achieves 99.5% accuracy on the MNIST dataset.
Retrieve the pre-trained net:
In[1]:= | ![]() |
Out[1]= | ![]() |
Apply the trained net to a set of inputs:
In[2]:= | ![]() |
Out[2]= | ![]() |
Give class probabilities for a single input:
In[3]:= | ![]() |
Out[3]= | ![]() |
Create a subset of the MNIST dataset:
In[4]:= | ![]() |
Out[4]= | ![]() |
Remove the last linear layer of the net, which will be used as a feature extractor:
In[5]:= | ![]() |
Out[5]= | ![]() |
Visualize the features of a subset of the MNIST dataset:
In[6]:= | ![]() |
Out[6]= | ![]() |
Extract the image reconstruction part:
In[7]:= | ![]() |
Out[7]= | ![]() |
Extract the DigitCaps feature vector for a given digit image:
In[8]:= | ![]() |
Out[8]= | ![]() |
Reconstruct the image from the feature vector:
In[9]:= | ![]() |
Out[9]= | ![]() |
Experiment with changing the feature vector. Add a shift along a single coordinate at a time:
In[10]:= | ![]() |
Out[10]= | ![]() |
In[11]:= | ![]() |
Out[11]= | ![]() |
In[12]:= | ![]() |
Out[12]= | ![]() |
Retrieve the uninitialized training architecture:
In[13]:= | ![]() |
Out[13]= | ![]() |
Retrieve the MNIST dataset:
In[14]:= | ![]() |
Out[14]= | ![]() |
Use the training dataset provided:
In[15]:= | ![]() |
Out[15]= | ![]() |
Use the test dataset provided:
In[16]:= | ![]() |
Out[16]= | ![]() |
Initialize the “W” matrices properly:
In[17]:= | ![]() |
Out[17]= | ![]() |
Train the net (if a GPU is available, setting TargetDevice -> "GPU" is recommended):
In[18]:= | ![]() |
Out[18]= | ![]() |
Inspect the number of parameters of all arrays in the net:
In[19]:= | ![]() |
Out[19]= | ![]() |
Obtain the total number of parameters:
In[20]:= | ![]() |
Out[20]= | ![]() |
Obtain the layer type counts:
In[21]:= | ![]() |
Out[21]= | ![]() |
Display the summary graphic:
In[22]:= | ![]() |
Out[22]= | ![]() |
Export the net into a format that can be opened in MXNet:
In[23]:= | ![]() |
Out[23]= | ![]() |
Export also creates a net.params file containing parameters:
In[24]:= | ![]() |
Out[24]= | ![]() |
Get the size of the parameter file:
In[25]:= | ![]() |
Out[25]= | ![]() |
The size is similar to the byte count of the resource object:
In[26]:= | ![]() |
Out[26]= | ![]() |
Represent the MXNet net as a graph:
In[27]:= | ![]() |
Out[27]= | ![]() |
Wolfram Language 11.3 (March 2018) or above