AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)

RNNs in Darknet

递归神经网络是表示随时间变化的数据的强大模型。为了更好地介绍RNNs,我强烈推荐Andrej Karpathy去年的博客文章,这是实现RNNs的一个很好的资源!

所有这些模型都使用相同的网络架构,一个包含3个递归模块的普通RNN。

每个模块由3个完全连接的层组成。输入层将信息从输入传播到当前状态。递归层通过时间将信息从上一个状态传播到当前状态。由于我们希望输入层和递归层都影响当前状态,所以我们将它们的输出相加以得到当前状态。最后,输出层将当前状态映射到RNN模块的输出。              网络的输入是一个1-hot编码的ASCII字符。我们训练网络预测字符流中的下一个字符。输出被限制为使用softmax层的概率分布。

由于每个递归层都包含有关当前字符和过去字符的信息,因此它可以使用此上下文来预测单词或短语中的未来字符。随着时间的推移,训练的内容如下:

尽管一次只能预测一个字符,但这些网络可以非常强大。在测试时,我们可以评估给定句子的可能性,也可以让网络自己生成文本!

要生成文本,首先我们通过输入某些字符(如换行符“\n”)或一组字符(如句子)来建立网络。然后,我们将网络输出的最后一个字符作为输入反馈到网络中。由于网络的输出是下一个字符的概率分布,我们可以从给定的分布中提取最可能的字符或样本,但采样往往会产生更有趣的结果。

用Darknet生成文本

首先你应该安装Darknet。因为您不需要CUDA或OpenCV,所以这就像克隆GitHub存储库一样简单:

git clone https://github.com/pjreddie/darknet

cd darknet

make

选择要使用的权重文件后,可以使用以下命令生成文本:

./darknet rnn generate cfg/rnn.cfg <weights>

也可以将各种标志传递给此命令:

-len<int>:更改生成文本的长度,默认为1000

-seed<string>:用给定的字符串为RNN设定种子,默认为“\n”

-srand<int>:为可重复运行的随机数生成器设置种子

-temp<float>:设置采样温度,默认为0.7

要生成此文本,必须下载此权重文件:grrm.weights(36 MB)。然后运行以下命令:

./darknet rnn generate cfg/rnn.cfg grrm.weights -srand 0 -seed JON

您可以更改srand或seed以生成不同的文本,所以请使用wild!我真的希望我不会因此被起诉。。。

OS X上的随机数生成器与Linux上的不同,因此如果运行相同的命令,则会得到不同的输出。

我不打算发布这个模型,但你可以下载自己的松弛日志,并在上面训练一个模型!怎么,你问?继续读。。。。

训练自己的模型

你也可以在新的文本数据上训练自己的模型!训练配置文件是cfg/rnn.train.cfg。训练所需的只是一个文本文件,其中包含所有ASCII格式的数据。然后运行以下命令:

./darknet rnn train cfg/rnn.train.cfg -file data.txt

模型会将定期备份保存到函数train_char_rnn中src/rnn.c中指定的目录,您可能希望将此目录更改为适合您的计算机的位置。要从备份重新开始训练,您可以运行:

./darknet rnn train cfg/rnn.train.cfg backup/rnn.train.backup -file data.txt

如果你想在大量数据上训练大型模型,你可能需要在一个快速的GPU上运行它。你可以在CPU上训练它,但可能需要一段时间,你已经被警告了!

AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)的更多相关文章

  1. AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(六) 1. Tiny Darknet 听过很多人谈论SqueezeNet. SqueezeNet很酷,但它只是优化参数计数.当大多数高 ...

  2. AlexeyAB DarkNet YOLOv3框架解析与应用实践(四)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(四) Nightmare 从前,在一所大学的大楼里,西蒙尼亚.维达第和齐瑟曼有一个很好的主意,几乎和你现在坐的大楼完全不同.他们想,嘿 ...

  3. AlexeyAB DarkNet YOLOv3框架解析与应用实践(三)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(三) ImageNet分类 您可以使用Darknet为1000级ImageNet挑战赛分类图像.如果你还没有安装Darknet,你应该 ...

  4. AlexeyAB DarkNet YOLOv3框架解析与应用实践(二)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(二) 版本3有什么新功能? YOLOv3使用了一些技巧来改进训练和提高性能,包括:多尺度预测.更好的主干分类器等等.全部细节都在我们的 ...

  5. AlexeyAB DarkNet YOLOv3框架解析与应用实践(一)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(一) Darknet:  C语言中的开源神经网络 Darknet是一个用C和CUDA编写的开源神经网络框架.它速度快,易于安装,支持C ...

  6. mybatis 3.x源码深度解析与最佳实践(最完整原创)

    mybatis 3.x源码深度解析与最佳实践 1 环境准备 1.1 mybatis介绍以及框架源码的学习目标 1.2 本系列源码解析的方式 1.3 环境搭建 1.4 从Hello World开始 2 ...

  7. iScroll框架解析——Android 设备页面内 div(容器,非页面)overflow:scroll; 失效解决(转)

    移动平台的活,兼容问题超多,今儿又遇到一个.客户要求在弹出层容器内显示内容,但内容条数过多,容器显示滚动条.按说是So easy,容器设死宽.高,CSS加属性 overflow:scroll; -we ...

  8. nodejs 实践:express 最佳实践(五) connect解析

    nodejs 实践:express 最佳实践(五) connect解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需 ...

  9. .NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结

    .NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结 前言 本文主要是关于.NET Standard 代码 在多框架 和 多平台 支持自己实践过程中遇到的一 ...

随机推荐

  1. 文档翻译第002篇:Process Monitor帮助文档(Part 2)

    [筛选与高亮显示] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包含与排除 您可以在筛选器中指定事件的属性,这样就可以令Process Monitor ...

  2. Linux下逻辑卷LVM的管理和RAID磁盘阵列

    目录 LVM 一:LVM的创建 二:LVM的拉伸 三:LVM的缩小 四:LVM的删除 五:RAID磁盘阵列的添加 LVM LVM(Logical Volume Manager) 逻辑卷管理器,可以动态 ...

  3. POJ1149 最大流经典建图PIG

    题意:       有一个人,他有m个猪圈,每个猪圈里都有一定数量的猪,但是他没有钥匙,然后依次来了n个顾客,每个顾客都有一些钥匙,还有他要卖猪的数量,每个顾客来的时候主人用顾客的钥匙打开相应的门,可 ...

  4. C#/VB.NET 自定义动画路径

    PPT中的动画效果可分为已有内置动画以及自定义动画.设置内置动画,只需直接指定动画效果类型即可.本文主要介绍如何实现自定义动画,即自定义形状动作线性路径.附C#及VB.NET代码供参考. 程序运行环境 ...

  5. 容器随Docker启动而启动

    在容器开启状态下 docker container update --restart=always 容器名

  6. yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)

    这是因为版本问题,centos8没有该参数,解决办法为:去掉fast参数,就可以了 sudo yum makecache

  7. 利用cm压缩包手动安装cm和cdh

    安装准备: 1.操作系统为centos6.9 CentOS-6.9-x86_64-bin-DVD1to2 2.安装Oracle JDK (1.8u121) 下载jdk-8u121-linux-x64. ...

  8. Faust——python分布式流式处理框架

    摘要 Faust是用python开发的一个分布式流式处理框架.在一个机器学习应用中,机器学习算法可能被用于数据流实时处理的各个环节,而不是仅仅在推理阶段,算法也不仅仅局限于常见的分类回归算法,而是会根 ...

  9. 国家密码标准-商密SM2官方文档整理

    SM2官方文档整理 算法原理 SM2算法介绍 我国自主知识产权的商业密码算法,是ECC(椭圆加密算法)的一种,基于椭圆曲线离散对数问题(公钥密码体制所依据的难题主要为大素数分解问题.离散对数问题.椭圆 ...

  10. VS里的 代码片段(Code snippet)很有用,制作也很简单

    工欲善其事必先利其器,而 Visual Studio 就是我们的开发利器. 上一篇文章,介绍了一个很棒的快捷键,如果你还没用过这个快捷键,看完之后应该会豁然开朗.如果你已经熟练的应用它,也会温故而知新 ...