Kernel: Python 3
Fit an MLP using an L1 penalty on the weights to make a sparse network
We use projected gradient descent as the optimizer
In [1]:
In [2]:
Out[2]:
WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
[DeviceArray([[-0. , -0. , 2.431252 , -0.8119889 ,
-0.42788023],
[-0. , -0. , -0.65971917, -2.28203 ,
1.7317362 ]], dtype=float32), DeviceArray([[-0.0000000e+00, 0.0000000e+00, 1.4137154e-04,
-0.0000000e+00, -0.0000000e+00],
[-0.0000000e+00, 0.0000000e+00, 1.4137154e-04,
-0.0000000e+00, -0.0000000e+00],
[ 6.0303992e-01, -6.7666084e-01, 2.6858740e+00,
9.9923909e-01, 6.7409021e-01],
[-4.1243622e-01, -1.3668306e-01, -2.6994646e+00,
-5.4342234e-01, 8.0237490e-01],
[-1.3856529e-01, 1.3904269e+00, -1.5361136e+00,
-1.5628791e-01, -2.6216986e+00]], dtype=float32), DeviceArray([[-0.01175803, -0. , 0. , 0.00575209,
0.9268445 ],
[-2.6765873 , -0. , 0.00455653, 0.626099 ,
-0.5545154 ],
[ 1.0652171 , -0. , -0. , 0.6383203 ,
-3.7673988 ],
[-0.24635328, -0. , 0. , 0.00526043,
1.0636787 ],
[-0.47570714, -0. , 0.71658546, -2.3223708 ,
-0.2466669 ]], dtype=float32), DeviceArray([[ 0.0000000e+00, 0.0000000e+00, -1.5543234e+00,
8.6723845e-03, 9.1011935e-01],
[-0.0000000e+00, -0.0000000e+00, 0.0000000e+00,
0.0000000e+00, -6.1229475e-05],
[-0.0000000e+00, -0.0000000e+00, 3.2885954e-01,
-6.2843136e-02, 4.1029684e-02],
[-0.0000000e+00, -0.0000000e+00, 9.8766428e-01,
8.8556975e-01, -9.4931644e-01],
[-0.0000000e+00, -0.0000000e+00, -2.0885425e+00,
5.0627375e-01, 0.0000000e+00]], dtype=float32), DeviceArray([[-0. ],
[-0. ],
[ 1.5987297 ],
[-0.87540865],
[ 0.8515912 ]], dtype=float32)]
In [8]:
Out[8]:
saving image to ../figures/sparse_mlp_fit.pdf
In [4]:
Out[4]:
'Neural Network.gv.png'
In [5]:
Out[5]:
In [9]:
Out[9]:
'../figures/sparse-mlp-graph-structure.png'
In [7]:
Out[7]:
cat_dog.jpg sparse-nnet sparse-nnet.png
In [ ]: