dev-cpp/tiny-dnn: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2021-05-27 11:35:36 +02:00
parent a09de087cf
commit 1fab63f837
5 changed files with 214 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST tiny-dnn-1.0.0_alpha3.tar.gz 12885646 BLAKE2B 85c0715ab6c692b77522487775e70b0db645528baed1830c83c9f44d2b67a5207e4f7ea1709b35c6a4217d287199549304e9be19f4a5cec9a1183b0b5dccc562 SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b

View File

@@ -0,0 +1,11 @@
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -32,7 +32,7 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
- 'sphinx.ext.mathjax'
+ 'sphinx.ext.mathjax', 'sphinx.ext.autodoc'
]
# Add any paths that contain templates here, relative to this directory.

View File

@@ -0,0 +1,29 @@
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -2,17 +2,6 @@
enable_testing()
-include(../cmake/DownloadProject/DownloadProject.cmake)
-#set(gtest_disable_pthreads on) #TODO(randl): Windows?
-download_project(
- PROJ googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_TAG master
- UPDATE_DISCONNECTED 1
-)
-
-add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
-
enable_testing()
# in ../googletest-src/googletest/CMakeLists.txt, BUILD_SHARED_LIBS is set to OFF
@@ -29,7 +18,7 @@
add_executable(tiny_dnn_test test.cpp test_no_duplicate_symbols.cpp)
target_link_libraries(tiny_dnn_test
- ${project_library_target_name} ${REQUIRED_LIBRARIES} gtest gmock)
+ ${project_library_target_name} ${REQUIRED_LIBRARIES})
add_test(all_tests tiny_dnn_test)
# workaround for https://gitlab.kitware.com/cmake/cmake/issues/8774

View File

@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>lssndrbarbieri@gmail.com</email>
<name>Alessandro Barbieri</name>
</maintainer>
<longdescription>
Features
Reasonably fast, without GPU:
With TBB threading and SSE/AVX vectorization.
98.8% accuracy on MNIST in 13 minutes training (@Core i7-3520M).
Portable and header-only:
Runs anywhere as long as you have a compiler which supports C++14.
Just include tiny_dnn.h and write your model in C++. There is nothing to install.
Easy to integrate with real applications:
No output to stdout/stderr.
A constant throughput (simple parallelization model, no garbage collection).
Works without throwing an exception.
Can import caffe's model.
Simply implemented:
A good library for learning neural networks.
Supported networks
layer-types
core
fully connected
dropout
linear operation
zero padding
power
convolution
convolutional
average pooling
max pooling
deconvolutional
average unpooling
max unpooling
normalization
contrast normalization (only forward pass)
batch normalization
split/merge
concat
slice
elementwise-add
activation functions
tanh
asinh
sigmoid
softmax
softplus
softsign
rectified linear(relu)
leaky relu
identity
scaled tanh
exponential linear units(elu)
scaled exponential linear units (selu)
loss functions
cross-entropy
mean squared error
mean absolute error
mean absolute error with epsilon range
optimization algorithms
stochastic gradient descent (with/without L2 normalization)
momentum and Nesterov momentum
adagrad
rmsprop
adam
adamax
</longdescription>
<use>
<flag name="double-precision">Build tiny-dnn with double precision computations</flag>
<!--<flag name="libdnn">Build tiny-dnn with GreenteaLibDNN library support</flag>-->
<!--<flag name="nnpack">Build tiny-dnn with NNPACK library support</flag>-->
<flag name="opencl">Build tiny-dnn with OpenCL library support</flag>
<flag name="serialization">Build tiny-dnn with Serialization support</flag>
<flag name="tbb">Build tiny-dnn with TBB library support</flag>
</use>
<upstream>
<remote-id type="github">tiny-dnn/tiny-dnn</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,84 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DOCS_BUILDER="sphinx"
DOCS_DEPEND="dev-python/recommonmark"
DOCS_DIR="docs"
MYPV="${PV/_alpha/a}"
PYTHON_COMPAT=( python3_{7,8,9} )
inherit cmake python-any-r1 docs
DESCRIPTION="header only, dependency-free deep learning framework in C++14"
HOMEPAGE="https://github.com/tiny-dnn/tiny-dnn"
SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${MYPV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${MYPV}"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_sse double-precision opencl openmp +serialization tbb test"
REQUIRED_USE="
?? ( openmp tbb )
"
RESTRICT="test" #tests doesn't build ...
# headers as rdepend because this is also an header only library
RDEPEND="
opencl? (
dev-util/opencl-headers
virtual/opencl
)
serialization? ( dev-libs/cereal )
tbb? ( dev-cpp/tbb )
"
DEPEND="${RDEPEND}"
BDEPEND="
test? ( dev-cpp/gtest )
"
PATCHES=(
"${FILESDIR}/${PN}-add-sphinx-ext-autodoc-to-conf-py.patch"
"${FILESDIR}/${PN}-disable-gtest-download.patch"
)
src_prepare() {
#remove bundled cereal
rm -r cereal || die
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DBUILD_DOCS=OFF
-DBUILD_EXAMPLES=OFF
-DCOVERALLS=OFF
-DUSE_LIBDNN=OFF
-DUSE_NNPACK=OFF
-DBUILD_TESTS=$(usex test)
-DUSE_AVX=$(usex cpu_flags_x86_avx)
-DUSE_AVX2=$(usex cpu_flags_x86_avx2)
-DUSE_DOUBLE=$(usex double-precision)
-DUSE_OMP=$(usex openmp)
-DUSE_OPENCL=$(usex opencl)
-DUSE_SERIALIZER=$(usex serialization)
-DUSE_SSE=$(usex cpu_flags_x86_sse)
-DUSE_TBB=$(usex tbb)
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
docs_compile
}
src_install() {
cmake_src_install
if use doc; then
dodoc -r _build/html
docompress -x "/usr/share/doc/${PF}/html"
fi
}