summaryrefslogtreecommitdiff
path: root/dev-cpp/tiny-dnn
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/tiny-dnn')
-rw-r--r--dev-cpp/tiny-dnn/Manifest1
-rw-r--r--dev-cpp/tiny-dnn/files/tiny-dnn-add-sphinx-ext-autodoc-to-conf-py.patch11
-rw-r--r--dev-cpp/tiny-dnn/files/tiny-dnn-disable-gtest-download.patch29
-rw-r--r--dev-cpp/tiny-dnn/metadata.xml89
-rw-r--r--dev-cpp/tiny-dnn/tiny-dnn-1.0.0_alpha3.ebuild84
5 files changed, 214 insertions, 0 deletions
diff --git a/dev-cpp/tiny-dnn/Manifest b/dev-cpp/tiny-dnn/Manifest
new file mode 100644
index 000000000000..5cf90f42047c
--- /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 000000000000..4fadeaa907c0
--- /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 000000000000..40b65ed23dfc
--- /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 000000000000..0bc53e1c06ed
--- /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>lssndrbarbieri@gmail.com</email>
+ <name>Alessandro Barbieri</name>
+ </maintainer>
+ <longdescription lang="en">
+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 000000000000..7337dbcab8b5
--- /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,10} )
+
+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
+}