commit: 1fab63f837034302bb8ffa0ef7a5a18dd1c3cc04 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> AuthorDate: Thu May 27 09:35:36 2021 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Thu May 27 09:35:36 2021 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=1fab63f8
dev-cpp/tiny-dnn: initial import Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> dev-cpp/tiny-dnn/Manifest | 1 + ...iny-dnn-add-sphinx-ext-autodoc-to-conf-py.patch | 11 +++ .../files/tiny-dnn-disable-gtest-download.patch | 29 +++++++ dev-cpp/tiny-dnn/metadata.xml | 89 ++++++++++++++++++++++ dev-cpp/tiny-dnn/tiny-dnn-1.0.0_alpha3.ebuild | 84 ++++++++++++++++++++ 5 files changed, 214 insertions(+) diff --git a/dev-cpp/tiny-dnn/Manifest b/dev-cpp/tiny-dnn/Manifest new file mode 100644 index 000000000..5cf90f420 --- /dev/null +++ b/dev-cpp/tiny-dnn/Manifest @@ -0,0 +1 @@ +DIST tiny-dnn-1.0.0_alpha3.tar.gz 12885646 BLAKE2B 85c0715ab6c692b77522487775e70b0db645528baed1830c83c9f44d2b67a5207e4f7ea1709b35c6a4217d287199549304e9be19f4a5cec9a1183b0b5dccc562 SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b diff --git a/dev-cpp/tiny-dnn/files/tiny-dnn-add-sphinx-ext-autodoc-to-conf-py.patch b/dev-cpp/tiny-dnn/files/tiny-dnn-add-sphinx-ext-autodoc-to-conf-py.patch new file mode 100644 index 000000000..4fadeaa90 --- /dev/null +++ b/dev-cpp/tiny-dnn/files/tiny-dnn-add-sphinx-ext-autodoc-to-conf-py.patch @@ -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. diff --git a/dev-cpp/tiny-dnn/files/tiny-dnn-disable-gtest-download.patch b/dev-cpp/tiny-dnn/files/tiny-dnn-disable-gtest-download.patch new file mode 100644 index 000000000..40b65ed23 --- /dev/null +++ b/dev-cpp/tiny-dnn/files/tiny-dnn-disable-gtest-download.patch @@ -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 diff --git a/dev-cpp/tiny-dnn/metadata.xml b/dev-cpp/tiny-dnn/metadata.xml new file mode 100644 index 000000000..5f2810ee5 --- /dev/null +++ b/dev-cpp/tiny-dnn/metadata.xml @@ -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>[email protected]</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> diff --git a/dev-cpp/tiny-dnn/tiny-dnn-1.0.0_alpha3.ebuild b/dev-cpp/tiny-dnn/tiny-dnn-1.0.0_alpha3.ebuild new file mode 100644 index 000000000..c01cd7f58 --- /dev/null +++ b/dev-cpp/tiny-dnn/tiny-dnn-1.0.0_alpha3.ebuild @@ -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 +}
