forked from tiny-dnn/tiny-dnn
-
Notifications
You must be signed in to change notification settings - Fork 0
Implementation Guides
nyanp edited this page Feb 11, 2016
·
2 revisions
(unfinished)
- Keep header only
- Minimize dependencies to other libraries
- Keep portable
If some enhancement (gpu supporting, importing other dl library's model, reading/writing db...) requires other libraries or .cpp files, it should be provided as opt-in model. In other words, default configuration of tiny-cnn must not depend on other libraries.
-
Conform to C++11 standard
- tiny-cnn should be compiled with
-Wall -Wextra -Wpedantic -Werror
- tiny-cnn should be compiled with
-
First-class Windows support
- To support Visual Studio compiler, tiny-cnn can't use some of C99 and C++11 features which Visual Studio 2013 doesn't support.(for example,
noexcept,constexpr, Inheriting constructors) For more detail, read this article:Support For C++11/14/17 Features (Modern C++)
- To support Visual Studio compiler, tiny-cnn can't use some of C99 and C++11 features which Visual Studio 2013 doesn't support.(for example,
-
use SCREAMING_SNAKE_CASE with prefix
CNN_for macro name -
use snake_case for other names
-
throw
nn_erroror subclass ofnn_errorin error -
don't catch any exceptions in tiny-cnn for the sake of exception disabled environment
- see discussion in #92 for detail
-
use 4 spaces instead of tabs