问题标签 [custom-training]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

object-detection - 是否可以使用仅一个类的 Nvidia ODTK 训练模型?

我正在尝试训练一个可以检测旋转矩形的模型。我找到了 Nvidia ODTK,但我没有发现任何迹象表明我是否可以只用一个类(类别)来训练它。默认的类别数是 80,现在我不确定它是否只适用于一个。

0 投票
1 回答
45 浏览

nlp - 有没有人使用 AllenNLP 对自定义数据进行过培训以进行共指解析?

我正在尝试在自定义数据上训练 AllenNLP,而不是使用预训练模型进行共指解析。说明在这里,但它们非常模糊,我不确定如何进行,特别是我不知道如何修改 JSONNET 文件以指示我的训练、测试和开发 ConLL-2012 训练文件的路径。以前有没有人完成过这个?非常感谢。

0 投票
0 回答
60 浏览

ocr - 使用具有更多字体的 JTessBoxEditor 训练 Tesseract

我目前正在尝试使用 JTessBoxEditor 为某些特定字体训练 tesseract,但它似乎只有一个特定的字体列表来生成 box/tiff 对,其中不包括一些非常流行的默认字体,例如 times new roman 更不用说更多了晦涩的。有没有办法添加特定的字体或变通方法让 tesseract 使用 JTessBoxEditor 训练这些其他字体?

0 投票
1 回答
124 浏览

machine-learning - 国际象棋评估神经网络正在向平均水平收敛

我目前正在研究国际象棋人工智能。该项目背后的想法是创建一个神经网络,该网络学习如何评估棋盘状态,然后使用蒙特卡洛树搜索遍历下一步以找到“最佳”棋步(由 NN 评估)。

GitHub 上的代码

TL;博士

NN 在预测数据集的平均评估时陷入困境,因此无法学习预测棋盘状态的评估。

执行

数据集

数据集是国际象棋游戏的集合。游戏取自官方lichess数据库。仅包含具有评估分数(NN 应该学习)的游戏。这将数据集的大小减少到原始数据的 11% 左右。

数据表示

每一步都是训练网络的数据点。NN 的输入是 12 个大小为 8x8 的数组(所谓的位板),每个数组对应 6x2 不同的块和颜色。使用缩放tanh函数将移动评估标准化为范围 [-1, 1]。由于许多评估非常接近 0 和 -1/1,因此也删除了其中的一部分,以减少数据集中的变化。

在不放弃评估接近 0 或 -1/1 的一些移动的情况下,数据集将如下所示: 不丢图

删除一些后,数据集看起来像这样,并且在某一点上不太集中: 带下降图

NN 的输出是介于 -1 和 1 之间的单个标量值,表示对棋盘状态的评估。-1 意味着棋盘非常受黑人玩家青睐,1 意味着棋盘非常受白人玩家青睐。

神经网络

神经网络是使用 Keras 实现的。

CNN 用于从板上提取特征,然后传递到密集网络以减少到评估。这是基于 NN AlphaGo Zero 在其实现中使用的。

CNN 实现如下:

训练

训练是使用 Keras 完成的。使用多组 50k-500k 移动来训练网络。该网络在每个移动集上训练 20 个 epoch,批大小为 64,并且 10% 的移动用于验证。

之后学习率调整为0.001 / (index + 1)

问题

NN 目前没有学到任何东西。它在几个 epoch 内收敛到对数据集的平均评估,并且不会根据棋盘状态预测任何内容。

20 个 epoch 后的示例:

数据集评估 神经网络评估 区别
-0.10164772719144821 0.03077016 0.13241789
0.6967725157737732 0.03180310 0.66496944
-0.3644430935382843 0.03119821 0.39564130
0.5291759967803955 0.03258476 0.49659124
-0.25989893078804016 0.03316733 0.29306626

NN 评估停留在 0.03,这是数据集的近似平均评估。它也卡在那里,没有继续改善。

损失图

我试过的

  • 增加和减少 NN 大小
    • 添加了多达 20 个额外的 Conv2D 层,因为谷歌在他们的实现中也这样做了
    • 删除了所有 10 个额外的 Conv2D 层,因为我读到很多 NN 对于数据集来说太复杂了
  • 一次训练几天
    • 由于 NN 停留在 0.03,并且也没有从那里移动,所以这是浪费的。
  • 密集NN代替CNN
    • 没有消除 NN 卡住的点,但训练得更快(又名卡住得更快:))
  • Sigmoid 激活而不是 tanh 将评估从 -1 到 1 的范围移动到 0 到 1 的范围,但除此之外并没有改变任何关于卡住的情况。
  • Epochs、batchsize 和 chunksize 增加和减少所有这些变化都没有显着改变 NN 评估。
  • 学习率添加
    • 较大的学习率 (0.1) 使 NN 不稳定,每次训练都会收敛到 -1、1 或 0。
    • 较小的学习率 (0.0001) 使 NN 收敛较慢,但仍停留在 0.03。

GitHub 上的代码

问题

该怎么办?是我遗漏了什么还是有错误?

0 投票
0 回答
30 浏览

callback - 如何提高fastai的验证频率?

在训练期间的 fastai 中,每个 epoch 都会计算验证损失和评估指标,如果我们使用 SaveModelCallback() 回调,则会保存最佳 epoch。但是,我们可以增加此过程的频率并在每 n 步后评估指标(例如,您的批量大小:32、64 等),以便更好地捕捉模型开始过度拟合的时刻。这很容易通过 BestCheckpointer 类在像detectron2 这样的repos 中使用。关于如何在 fastai 中实现这样的回调有什么想法吗?供参考,在这个论坛上讨论过,但没有产生任何解决方案

0 投票
0 回答
7 浏览

nlp - 自定义训练问题:best_model_ranking 不输出某些 ConLL 文件

我已经使用用于一组 ConLL 文件的神经核函数包成功地训练了一个自定义模型。但是,当我从另一组添加更多内容时,我收到此错误:

best_model_ranking(我用于与神经核的共指解析的自定义模型)不存在:

在此处输入图像描述

你以前遇到过这个错误吗?我认为这可能是因为在某些新的 ConLL 文件中,共指之间的标记距离太长了。你有什么想法?非常感谢。

0 投票
0 回答
19 浏览

object-detection - 目标检测:训练 Detectron2 Faster R-CNN 时出现异常警告

我正在尝试在自定义数据集上训练Detectron2 faster_rcnn_R_50_FPN_3x模型,在PublayNet数据集上进行预训练。在训练时,我收到以下警告:

经过进一步调查,我从这个链接发现上述警告消息是预期的,因为我的数据集与预训练模型的类数不同,并且必须跳过一些预训练的权重。

publaynet 有 5 个类{"text", "title", "list", "table", "figure"},而我的数据集正好有这 5 个类。但不幸的是,在 publaynet 上预训练的模型有 6 个类。不是应该有5节课吗?我对这个额外的课程感到困惑,感谢任何帮助!

0 投票
1 回答
25 浏览

python - 在 colab 上通过回调保存准确性和损失

所以我试图在 colab 上训练一个模型,这将需要我大约 70-72 小时的持续运行时间。我有一个免费帐户,所以我经常因为过度使用或不活动而被踢,这意味着我不能将历史记录转储到 pickle 文件中。

我在回调方法中找到了 CSVLogger 并将其添加到我的回调中,如下所示。但由于某种原因,它不会创建 model_history_log.csv。我没有收到任何错误或警告。我做错了什么?我的目标是在整个训练过程中只保存准确性和损失

另外,由于我在每个时期都保存了模型,模型是否保存了这些信息?到目前为止我还没有发现任何东西,我怀疑它是否可以节省准确性、损失、val 准确性等

0 投票
0 回答
16 浏览

json - 如何将 labelme json 目录转换为一个 json 文件以在 MaskRCNN 中使用?

我正在尝试在 MaskRCNN 上训练一个对象分类器,我正在遵循的教程使用 VGG 标签软件,其中将标记的数据转换为一个 JSON 文件。我已经为我的数据使用了 labelme,并且需要为 MaskRCNN 准备它。

Labelme 以这种格式为每个标记图像提供一个 JSON 文件:

我有一个图像目录和相应的 JSON 文件,关于如何组合的任何帮助。无法让 labelme_json_to_dataset 工作,我相信这是解决方案?

0 投票
1 回答
18 浏览

python - 如果服务器突然崩溃,在训练 CNN 时保存、恢复并继续更新学习曲线

我正在远程服务器上使用 TensorFlow 训练深度学习模型。问题是我一次只分配了 2 个小时的培训,并且服务器可能由于各种原因在任何时候崩溃。

我知道我的模型训练至少需要 48 小时才能完成。我希望能够在模型完全训练(48 小时以上)后显示从开始到结束的训练曲线,中间没有中断。

我可以使用回调(保存最佳权重)选择训练最后一次崩溃时的位置,但我不确定如何通过训练曲线(损失 + 准确性)来实现这一点。

非常感谢您的帮助。