mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-15 01:53:25 -04:00
dev-cpp/tiny-dnn: initial import
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
1
dev-cpp/tiny-dnn/Manifest
Normal file
1
dev-cpp/tiny-dnn/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST tiny-dnn-1.0.0_alpha3.tar.gz 12885646 BLAKE2B 85c0715ab6c692b77522487775e70b0db645528baed1830c83c9f44d2b67a5207e4f7ea1709b35c6a4217d287199549304e9be19f4a5cec9a1183b0b5dccc562 SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b
|
||||
@@ -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.
|
||||
29
dev-cpp/tiny-dnn/files/tiny-dnn-disable-gtest-download.patch
Normal file
29
dev-cpp/tiny-dnn/files/tiny-dnn-disable-gtest-download.patch
Normal 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
|
||||
89
dev-cpp/tiny-dnn/metadata.xml
Normal file
89
dev-cpp/tiny-dnn/metadata.xml
Normal 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>
|
||||
84
dev-cpp/tiny-dnn/tiny-dnn-1.0.0_alpha3.ebuild
Normal file
84
dev-cpp/tiny-dnn/tiny-dnn-1.0.0_alpha3.ebuild
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user