问题标签 [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.
yolo - 暗网中的数据增强和训练 YOLO
我一直想知道数据增强是使用 yolo 的配置文件完成还是在 src/image.c 中实现。我说的是暗网和问题 #1408 的研究。
经过大量研究,我正在解决这个问题。如果我查看问题 #1408 darknet 的答案,很明显增强是在位于 darkenet 存储库的 src 文件夹中的image.c中实现的,但另一方面,如果我查看yolo.cfg 文件并指向第 13 行,增强的14、15 和 16 个参数在那里定义为角度、饱和度、曝光度和色调。
我很困惑。如果我查看位于 src 目录中的文件 image.c,则增强的方法是load_data_detection()和rotate_crop_image但因为这些只是方法。如何为他们提供价值。
我要扔光的另一点是关于角度旋转支持yolo。我在某处读到没有提供 yolo 角度支持。是否可以对此进行一些阐述。
在使用图像训练 yolo 模型期间,我在终端中得到了结果,这表明图像数量在训练期间有所增加,就像我正在使用 400 张图像进行训练一样,但是在训练期间,我得到了以下输出
1180:1.007143,1.776118 平均损失,0.001000 率,3.467960 秒,75520 张图像,还剩 3.077078 小时
任何有用的帮助或链接对我来说都是值得的。
python - 尝试使用 tf.GradientTape() 进行自定义训练时,“所有输入的形状必须匹配”错误损失函数
我正在使用 Python 3.7.7。和带有功能 API 和急切执行的 Tensorflow 2.1.0。
我正在尝试使用从 U-Net 预训练网络中提取的编码器进行自定义训练:
- 我没有编译就得到了 U-Net 模型。
- 我已将权重加载到模型中。
- 我已经从该模型中提取了编码器和解码器。
然后我想将编码器与此摘要一起使用:
我使用此功能进行自定义培训:
grad
功能是:
但是当我尝试运行它时,我得到了错误:
在loss
函数中,我检查了y_
变量的值。y_
是具有这些形状的 6 个元素的列表:
关于它发生了什么的任何想法?
如果您需要更多详细信息,请询问我。
这是完整的调用堆栈:
tensorflow - 具有多处理功能的 Tensorflow2.x 自定义数据生成器
我刚刚升级到 tensorflow 2.3。我想制作自己的数据生成器进行训练。使用 tensorflow 1.x,我这样做了:
此代码适用于 tensorflow 1.x。在系统中创建了 8 个进程。处理器和视频卡加载完美。“数据加载”打印了 8 次。
使用 tensorflow 2.3 我收到警告:
警告:张量流:多处理可能与 TensorFlow 交互不良,导致非确定性死锁。对于高性能数据管道,建议使用 tf.data。
“数据加载”打印了一次(应该是 8 次)。GPU 没有被充分利用。它也有每个 epoch 的内存泄漏,所以在几个 epoch 后,traning 会停止。use_multiprocessing 标志没有帮助。
如何在 tensorflow(keras) 2.x 中制作可以轻松跨多个 CPU 进程并行化的生成器/迭代器?死锁和数据顺序并不重要。
tensorflow - 使用 train_on_batch 为每个 epoch 获得相同的准确性和损失
我正在做一个二进制分类问题,总共有 440 张图像。我正在为每个批次使用“train_on_batch”函数训练 CNN。我知道 train_on_batch 用于大型数据集,但我在小型数据集上使用它以进行测试。我正在训练我的模型 (ResNet50V2) 5 个时期,批次大小为 32,并且每个时期我都收到相同的批次准确度和相同的批次损失。这可能是什么原因?
数据集结构:
文件:train_on_batch.py
文件:vgg16_keras
输出:
如果我在每个 epoch 之后更改学习率它仍然会给我相同的结果。我正在使用 TensorFlow 1.14 版
我需要在自定义批次上使用 train_on_batch 训练分类模型。如果您可以参考一些执行相同操作的示例。
python-3.6 - 调用 tensorflow2 模型未返回已在 call() 方法中定义的输出
当我调用 tf2 模型时,它不会按照我在 tf Model 子类中定义 call() 方法的方式返回应该返回的值。
相反,调用模型的 call() 方法将返回我在 build() 方法中定义的张量
为什么会发生这种情况,我该如何解决?
以下是我得到的输出 -
我打算只使用模型末尾的“final_layer”或密集层,将其输入到采样的 softmax 函数中,与 gru_out 一起使用来计算损失(以便训练模型)。
在测试时,我打算手动将 gru_out 传递给 model.get_layer('final_layer') 以获得最终的 logits。
python - ValueError:未知层:RBFLayer
我是深度学习的新手。我想使用 rbf 神经网络在自定义数据集上构建人脸识别模型。我有 17 个类别的 187 个图像的数据集。我训练并保存模型但不能使用它。我的代码:
拟合模型.......
在加载模型上它说:
ValueError:未知层:RBFLayer
怎么了?我需要做什么?
python - 在 Pytorch 中使用自定义损失训练模型如何设置优化器并运行训练?
我是 pytorch 的新手,我正在尝试运行我找到的 github 模型并对其进行测试。所以作者提供了模型和损失函数。
像这样:
数据加载
假设我想训练这个模型 15 个 epoch。所以这就是我目前所拥有的:我正在尝试设置优化器和训练,但我不确定如何将自定义损失和数据加载与模型联系起来并正确设置 15 epoch 训练。
有什么建议么?
python - 试图通过自定义损失,但它不允许我这样做。AttributeError:“float”对象没有“backward”属性
我有一个自定义损失函数,我试图在我的模型上使用,但是当我loss.backward()
在 Pytorch 中使用时不起作用。
这是我的损失函数:
当我尝试将它与这样的模型一起使用时:
我收到以下错误:AttributeError: 'float' object has no attribute 'backward'
有关如何解决此问题的任何建议?
doc2vec - 如何在使用通用语料库训练后继续使用特定领域语料库训练 Doc2Vec
我想使用通用语料库训练 Doc2Vec 模型,然后继续使用特定领域的语料库进行训练(我已阅读这是一种常见策略,我想测试结果)。
我有所有的文档,所以我可以在一开始就构建和标记词汇。
据我了解,我应该首先使用通用文档训练所有时期,然后使用临时文档重复这些时期。但是,通过这种方式,我不能将所有文档放在语料库迭代器中并调用 train() 一次(因为到处都建议这样做)。
因此,在构建全局词汇之后,我创建了两个迭代器,第一个用于通用文档,第二个用于临时文档,并调用了 train() 两次。
这是最好的方式还是更合适的方式?
如果最好,我应该如何管理 alpha 和 min_alpha?在 train() 调用中不提及它们并让 train() 管理它们是一个好的决定吗?
最好的
阿尔贝托
python - 为什么 YOLO 训练损失没有显着减少且平均 IoU 没有增加?
我正在尝试从这篇论文中实现 Yolo(论文没有提到它是 v1,但它是第一篇论文,所以我认为它是 v1 )。我正在使用 Keras 和 Tensorflow 1.x 在 Google Colab 上实现。
TLDR ; 结果:
开始时代:
结束 Epochs(总共 320 个 epoch,每个循环 32 个):
问题:即使经过这么多 epoch,损失也减少得很少(但减少了,这没关系),但 mean_iou 并没有增加,这让我很担心。为什么会发生这种情况?在这个阶段,我无法调试为什么 iou 没有增加,尽管损失减少了。这种损失值是自然的吗?这对我来说并不自然,因此我们将不胜感激。我怀疑我在损失函数实现中做错了什么。
数据集:我使用的数据集大小为 2500*256*256*3,由白色背景和 3 种彩色形状(矩形、三角形和圆形)组成。最多可以没有形状或 3 个形状。形状可以都是相同的或如上所述的不同类型。它可以从这里使用 python 文件生成。示例图片:
参数说明:根据论文,我将S(所以SxS网格),B(每个网格的边界框数)和C(类数)设置如下:
请注意,我已经定义了一个名为norm_const的常量,它将用于标准化地面实况中心坐标、高度和宽度,它们存在于 0-255 范围内。
我如何规范化图像、中心坐标、高度和宽度: Ground Truth 是一个 JSON 结构,其中一个图像中每个形状的边界框的 x1、x2、y1、y2 坐标。我正在计算中心、高度和宽度值并将它们标准化。我对每个网格的最终向量是 [1,cx,cy,h,w,0,0,1] 其中最后三个值是分类分数,第一个值是置信度分数,其余的是坐标。如果网格没有中心,则其向量自动为 [0,0,0,0,0,0,0,0](来自 numpy zeros 定义)。
损失函数实现:
IoU (Intersection over Union) 实现置信度得分:灵感来自这里,IoU 实现如下:
以及在训练期间要观察的 mean_iou_metric:
模型(基于faster yolo):
TLDR;图片:
最新训练参数: