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

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

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

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

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

-temp:设置采样温度,默认为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框架解析与应用实践(六) 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编写的开源神经网络框架.它速度快,易于安装,支持CP ...

  6. alexeyab darknet 编译_【目标检测实战】Darknet—yolov3模型训练(VOC数据集)

    原文发表在:语雀文档 0.前言 本文为Darknet框架下,利用官方VOC数据集的yolov3模型训练,训练环境为:Ubuntu18.04下的GPU训练,cuda版本10.0:cudnn版本7.6.5 ...

  7. yolov3(三:算法框架解析)

    应用见: https://blog.csdn.net/Darlingqiang/article/details/103889245 https://blog.csdn.net/Darlingqiang ...

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

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

  9. 蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源

    简介:开源网络通信框架 SOFABolt 首次线上直播文字回顾. ,有趣实用的分布式架构频道. 回顾视频以及 PPT 查看地址见文末.欢迎加入直播互动钉钉群 : 30315793,不错过每场直播. 大 ...

最新文章

  1. 如何用python写程序设置当前打印机为默认打印机_从Python打印到标准打印机?
  2. rocksdb和leveldb性能比较——写性能
  3. datatable删除一行数据
  4. 济宁医学院计算机专业好就业吗,山东这3所医学院实力强,就业率高,中等生可捡漏...
  5. 她是法国数学界的“花木兰”,高斯的“救命恩人”
  6. shell编程追加2
  7. java 重载赋值_java中构造方法,set/get方法,方法重载使用解读
  8. 在不重装系统的情况下创建Linux的Swap分区
  9. 阿里巴巴最新开源项目 - [HandyJSON] 在Swift中优雅地处理JSON
  10. semver语义化版本号
  11. 统计自然语言处理(第二版)学习笔记:第一章
  12. part-15 开环增益Avol
  13. 王献之碧玉小楷《洛神赋十三行》王献之小楷高清原石拓本对比图
  14. 系统学习机器学习之组合多分类器
  15. 电驴搜索服务器正在连接,电驴未连接到服务器是什么原因?
  16. 数据库学习-关于存在量词exists的理解
  17. 1、库中齿轮凸台拉伸
  18. StrandHogg漏洞修复
  19. springboot2+shiro 重写filter接口来调用自定义ream的登录校验方式
  20. python在教育领域的应用课题_研究型案例在Python教学方法中应用

热门文章

  1. 2022-2028年中国橡胶板的制造行业发展战略规划及投资方向研究报告
  2. 2022-2028年中国橡胶手套行业市场研究及前瞻分析报告
  3. OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)
  4. github下载源码也用命令进行安装包的联系
  5. HMM——维特比算法(Viterbi algorithm)
  6. Java集合详解之Map
  7. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)
  8. 特斯拉超级计算机Dojo
  9. 特征提取,转换和选择
  10. CUDA 内存统一分析