tiny dnn

2025-12-10 0 833

由于维护者只是想继续前进,因此可以放弃该项目。在任何人对继续项目感兴趣的情况下,请告诉我们,以便我们可以讨论下一步。

请访问:https://groups.google.com/forum/#!forum/tinydnn-dev


Tiny-DNN是C ++ 14深度学习的实施。它适用于有限的计算资源,嵌入式系统和物联网设备的深入学习。

Linux/Mac OS 视窗

目录

  • 特征
  • 与其他图书馆进行比较
  • 支持的网络
  • 依赖性
  • 建造
  • 例子
  • 贡献
  • 参考
  • 执照
  • 吉特

查看文档以获取更多信息。

什么是新的

  • 2016/11/30 V1.0.0A3已发布!
  • 2016/9/14 tiny-dnn v1.0.0.0alpha已发布!
  • 2016/8/7 Tiny-DNN现在已转移到组织帐户,并将其重命名为Tiny-DNN 🙂
  • 2016/7/27 Tiny-DNN V0.1.1发布!

特征

  • 相当快,没有GPU:
    • 带有TBB螺纹和SSE/AVX矢量化。
    • MNIST在13分钟训练中的精度为98.8%(@core I7-3520m)。
  • 便携式和标题:
    • 只要您拥有支持C ++ 14的编译器,就可以在任何地方运行。
    • 只需包含tiny_dnn.h,然后将您的模型写入C ++即可。没有什么可安装的。
  • 易于与真实应用程序集成:
    • 没有输出对Stdout/stderr的输出。
    • 恒定的吞吐量(简单的并行化模型,无垃圾收集)。
    • 没有抛出例外的情况下工作。
    • 可以导入Caffe的模型。
  • 简单实施:
    • 学习神经网络的好库。

与其他图书馆进行比较

请参阅Wiki页面。

支持的网络

图层类型

    • 完全连接
    • 辍学
    • 线性操作
    • 零填充
    • 力量
  • 卷积
    • 卷积
    • 平均合并
    • 最大池
    • 反向解决方案
    • 平均不熟食
    • 最大不冷
  • 正常化
    • 对比归一化(仅向前传)
    • 批量归一化
  • 拆分/合并
    • concat
    • elementwise-add

激活功能

  • Tanh
  • asinh
  • 乙状结肠
  • SoftMax
  • 软plus
  • SoftSign
  • 纠正线性(relu)
  • 漏水
  • 身份
  • 缩放的tanh
  • 指数线性单元(ELU)
  • 缩放指数线性单元(SELU)

损失功能

  • 跨肠道
  • 平方误差
  • 平均绝对错误
  • Epsilon范围的平均绝对误差

优化算法

  • 随机梯度下降(有/不具有L2归一化)
  • 动力和内斯特罗的动力
  • Adagrad
  • RMSPROP
  • 亚当
  • Adamax

依赖性

没有什么。您需要的只是C ++ 14编译器(GCC 4.9+,Clang 3.6+或VS 2015+)。

建造

Tiny-DNN仅是标题,所以没有什么可建造的。如果要执行示例程序或单元测试,则需要安装CMAKE并键入以下命令:

cmake . -DBUILD_EXAMPLES=ON
make

然后更改为示例目录并运行可执行文件。

如果您想使用诸如Visual Studio或Xcode之类的IDE,也可以使用CMAKE生成相应的文件:

cmake . -G \"Xcode\"            # for Xcode users
cmake . -G \"NMake Makefiles\"  # for Windows Visual Studio users

然后在Visual Studio中打开.sln文件并在Windows/MSVC上构建,或键入Make Command(在Linux/Mac/Windows-Mingw上)。

有一些CMAKE选项可用:

选项 描述 默认 使用的其他要求
USE_TBB 使用英特尔TBB并行化 1 英特尔TBB
USE_OMP 使用OpenMP进行并行化 1 OpenMP编译器
USE_SSE 使用Intel SSE指令集 支持SSE的英特尔CPU
USE_AVX 使用英特尔AVX指令集 支持AVX的英特尔CPU
USE_AVX2 使用AVX2库支持构建微小的DNN 离开 支持AVX2的英特尔CPU
USE_NNPACK 使用NNPACK进行卷积操作 离开 多核CPU上神经网络的加速软件包
USE_OPENCL 启用/禁用OpenCL支持(实验) 离开 异质系统并行编程的开放标准
use_libdnn 使用greentea libdnn通过OpenCL(实验)与GPU进行卷积操作 离开 支持CUDA和OPENCL的通用卷积实施
use_serializer 启用模型序列化 2
use_double 使用双精度计算而不是单个精度 离开
use_asan 使用地址消毒剂 离开 Clang或GCC编译器
use_image_api 启用图像API支持
use_gemmlowp 启用Gemmlowp支持 离开
build_tests 建立单元测试 休息3
build_examples 建立示例项目 离开
build_docs 构建文档 离开 doxygen
轮廓 建立单元测试 离开 Gprof

1 Tiny-DNN使用C ++ 14标准库进行并行化。

2如果您不使用序列化,则可以关闭加速汇编时间。

3 Tiny-DNN使用Google测试作为默认框架来运行单元测试。无需预安装,它会在CMAKE配置期间自动下载。

例如,如果要使用Intel TBB并构建测试,请键入以下命令:

cmake -DUSE_TBB=ON -DBUILD_TESTS=ON . 

自定义配置

您可以编辑包含/config.h以自定义默认行为。

例子

构建卷积神经网络

# include \" tiny_dnn/tiny_dnn.h \"
using namespace tiny_dnn ;
using namespace tiny_dnn ::activation ;
using namespace tiny_dnn ::layers ;

void construct_cnn () {
    using namespace tiny_dnn ;

    network<sequential> net;

    // add layers
    net << conv ( 32 , 32 , 5 , 1 , 6 ) << tanh ()  // in:32x32x1, 5x5conv, 6fmaps
        << ave_pool ( 28 , 28 , 6 , 2 ) << tanh () // in:28x28x6, 2x2pooling
        << fc ( 14 * 14 * 6 , 120 ) << tanh ()   // in:14x14x6, out:120
        << fc ( 120 , 10 );                     // in:120,     out:10

    assert (net. in_data_size () == 32 * 32 );
    assert (net. out_data_size () == 10 );

    // load MNIST dataset
    std::vector< label_t > train_labels;
    std::vector< vec_t > train_images;

    parse_mnist_labels ( \" train-labels.idx1-ubyte \" , &train_labels);
    parse_mnist_images ( \" train-images.idx3-ubyte \" , &train_images, - 1.0 , 1.0 , 2 , 2 );

    // declare optimization algorithm
    adagrad optimizer;

    // train (50-epoch, 30-minibatch)
    net. train <mse, adagrad>(optimizer, train_images, train_labels, 30 , 50 );

    // save
    net. save ( \" net \" );

    // load
    // network<sequential> net2;
    // net2.load(\"net\");
}

构建多层感知器(MLP)

# include \" tiny_dnn/tiny_dnn.h \"
using namespace tiny_dnn ;
using namespace tiny_dnn ::activation ;
using namespace tiny_dnn ::layers ;

void construct_mlp () {
    network<sequential> net;

    net << fc ( 32 * 32 , 300 ) << sigmoid () << fc ( 300 , 10 );

    assert (net. in_data_size () == 32 * 32 );
    assert (net. out_data_size () == 10 );
}

构造MLP的另一种方法

# include \" tiny_dnn/tiny_dnn.h \"
using namespace tiny_dnn ;
using namespace tiny_dnn ::activation ;

void construct_mlp () {
    auto mynet = make_mlp<tanh>({ 32 * 32 , 300 , 10 });

    assert (mynet. in_data_size () == 32 * 32 );
    assert (mynet. out_data_size () == 10 );
}

有关更多样本,请阅读示例/main.cpp或mnist示例页面。

贡献

由于深度学习社区正在迅速增长,因此我们很乐意从您那里获得贡献,以加速微小的DNN开发!有关贡献的快速指南,请查看贡献文件。

参考

[1] Y. Bengio,基于梯度的深度建筑培训的实用建议。 ARXIV:1206.5533V2,2012

[2] Y. Lecun,L。Bottou,Y。Bengio和P. Haffner,基于梯度的学习应用于文档识别。 IEEE的论文集,86,2278-2324。

其他有用的参考列表:

  • UFLDL建议阅读
  • 深度学习。net阅读列表

执照

BSD 3级许可证

吉特室

我们有用于讨论新功能和质量检查的吉特室。随时加入我们!

开发人员 https://gi*t*ter*.im/tiny-dnn/developers
用户 https://gitt*e*r.i*m/tiny-dnn/users

下载源码

通过命令行克隆项目:

git clone https://github.com/tiny-dnn/tiny-dnn.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 tiny dnn https://www.zuozi.net/33874.html

CopilotKit
上一篇: CopilotKit
h4cker
下一篇: h4cker
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务