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

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

RNNs in Darknet

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

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

3bbe3c02afc168412a64fdfc7df77e6d.png

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

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

977ab9d8ecc11f2325eab5ec11a7654d.png

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

要生成文本,首先我们通过输入某些字符(如换行符“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上训练它,但可能需要一段时间,你已经被警告了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值