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
+}

Reply via email to