开源
char-rnn-tensorflow:基于Tensorflow 的 Python 字符级语言模型的多层递归神经网络
来源:元经纪     阅读:1187
网站管理员
发布于 2023-03-20 07:32
查看主页

概述

使用 Tensorflow 的 Python 字符级语言模型的多层递归神经网络(LSTM、RNN)。 环境:Tensorflow 1.0

用法

要在 tinyshakespeare 语料库上使用默认参数进行训练,请运行python train.py. 要访问所有参数,请使用python train.py --help.

要从检查点模型中采样,

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

python sample.py. 在学习仍在进行时进行采样(检查最后一个检查点)仅适用于 CPU 或使用另一个 GPU。要强制使用 CPU 模式,请使用export CUDA_VISIBLE_DEVICES=""andunset CUDA_VISIBLE_DEVICES之后(分别set CUDA_VISIBLE_DEVICES=""set CUDA_VISIBLE_DEVICES=Windows 上)。

要在中断后继续训练或运行更多纪元,python train.py --init_from=save

数据集

您可以使用任何纯文本文件作为输入。例如,您可以这样下载完整的夏洛克·福尔摩斯:

cd data
mkdir sherlock
cd sherlock
wget https://sherlock-holm.es/stories/plain-text/cnus.txt
mv cnus.txt input.txt

然后使用从顶级目录开始训练python train.py --data_dir=./data/sherlock/

.txt将许多不同的小文件连接成一个大的训练文件的快速提示: ls *.txt | xargs -L 1 cat >> input.txt.

调整

在这一点上,调整你的模型是一种“黑暗艺术”。一般来说:

  1. 从尽可能干净的 input.txt 开始,例如 50MiB
  2. 首先使用默认设置建立基线。
  3. 使用 tensorboard 直观地比较您的所有运行以帮助进行实验。
  4. 如果您有大量输入数据,请将 --rnn_size 从 128 调高一些。
  5. 将 --num_layers 从 2 调整为 3,但除非您有经验,否则不要更高。
  6. 根据有效输入字符串的长度将 --seq_length 从 50 调高(例如名称 <= 12 个字符,句子最多 64 个字符等)。一个 lstm 单元将“记住”比这个序列更长的持续时间,但对于更长的字符距离,效果会下降。
  7. 最后,一旦你完成了所有这些,我才会建议添加一些 dropout。从 --output_keep_prob 0.8 开始,可能仅在用尽上述所有值后以 --input_keep_prob 0.8 --output_keep_prob 0.5 结束。

Tensorboard

要可视化训练进度、模型图和内部状态直方图:启动 Tensorboard 并将其指向您的log_dir. 例如:

$ tensorboard --logdir=./logs/

然后打开浏览器访问http://localhost:6006或指定的正确 IP/端口。

[/hidecontent]

 

 

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
县域品牌崛起正当时
焕新力聚 颜起未来 | 善颜2025服务商赋能大会圆满举行
3月安卓旗舰手机性价比榜:红魔10 Pro登顶榜首、小米15第三
雷达流量计、雷达水位计、流速仪:城市防汛的“智慧之眼”
主体结构由3D打印的卫星像树木生长一样逐线逐层往上“长” 西湖区53个重点项目集中签约

首页

分类

定制方案

消息

我的