Enable MNIST example on DSP
authorYuan Zhao <yuanzhao@ti.com>
Wed, 19 Dec 2018 16:53:18 +0000 (10:53 -0600)
committerYuan Zhao <yuanzhao@ti.com>
Wed, 19 Dec 2018 16:58:03 +0000 (10:58 -0600)
- It turns out DSP implementation of InnerProduct layer in TIDL library
  requires input size to be multiple of 8, because it is doing
  aligned 8-byte loads.
- Original LeNet network used in the MNIST example has a second InnerProduct
  layer of size 500, which is not a multiple of 8.  Change the size to 504,
  re-train the network, re-import into TIDL format.  Now the MNIST example
  works correctly on DSP as well.
- MCT-1105

examples/mnist/main.cpp
examples/test/testvecs/config/tidl_models/tidl_net_mnist_lenet.bin
examples/test/testvecs/config/tidl_models/tidl_param_mnist_lenet.bin

index d933cccf9b26edca6f9d3724216792f2f918a2dc..75e128312ae93f5e4312b39789afadc074d81464 100644 (file)
@@ -95,11 +95,6 @@ int main(int argc, char *argv[])
         exit(EXIT_SUCCESS);
     }
     assert(opts.num_dsps != 0 || opts.num_eves != 0);
-    if (opts.num_dsps != 0)
-    {
-        cout << "MNIST network not supported on DSP yet." << endl;
-        exit(EXIT_SUCCESS);
-    }
 
     if (opts.input_file.empty())
     {
@@ -339,6 +334,7 @@ void DisplayHelp()
     "  different MNIST network. Default is mnist_lenet.\n"
     "Optional arguments:\n"
     " -c <config>          Valid configs: mnist_lenet\n"
+    " -d <number>          Number of dsp cores to use\n"
     " -e <number>          Number of eve cores to use\n"
     " -i <images>          Path to the MNIST white-on-black images file\n"
     " -l <labels>          Path to the MNIST labels file\n"
index ea9ac6caf61b4522dbf831088f246d62b38bd149..96a75833dbca641e333d4c247b484644334f2ed9 100644 (file)
Binary files a/examples/test/testvecs/config/tidl_models/tidl_net_mnist_lenet.bin and b/examples/test/testvecs/config/tidl_models/tidl_net_mnist_lenet.bin differ
index 66cc8a6b6f26de71da0947d802b3397d4b5c698c..54405aa9bb22a966398c915a27e78004672c4e62 100644 (file)
Binary files a/examples/test/testvecs/config/tidl_models/tidl_param_mnist_lenet.bin and b/examples/test/testvecs/config/tidl_models/tidl_param_mnist_lenet.bin differ