问题标签 [transfer-learning]
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.
python - 在 keras 中进行迁移学习时 fit 和 fit_generator 之间的区别
我正在尝试使用带有 tensorflow 的 Keras 中的迁移学习来训练深度神经网络。有不同的方法可以做到这一点,如果您的数据很小,您可以使用预训练模型为整个数据提供计算功能,然后使用这些功能来训练和测试小型网络,这很好,因为您不需要为每个批次和每个时期计算这些特征。但是,如果数据很大,就不可能计算整个数据的特征,在这种情况下,我们使用ImageDataGenerator
,flow_from_directory
和fit_generator
. 在这种情况下,每次在每个时期的每个批次中都会计算特征,这会使事情变得更慢。我假设两种方法在准确性和损失方面产生相似的结果。问题是我拿了一个小数据集并尝试了这两种方法并得到了完全不同的结果。如果有人能告诉我提供的代码是否有问题和/或为什么我得到不同的结果,我将不胜感激?
拥有大型数据集时的方法:
拥有小数据集时的方法:
python - 使用 keras VGGFace 框架训练 CNN 时,Epoch 未启动
我正在尝试在我自己的由 12 类人脸图像组成的数据集上使用带有 keras 框架的 VGG Face 实现。我在一些训练集中数据非常少的类上应用了增强。
在使用 resnet50 进行微调后,当我尝试训练我的模型时,它会卡在 epoch 中,即它没有开始训练,而是继续显示 Epoch 1/50。这是它的样子:
这是我的代码:
有谁知道可能是什么问题?我怎样才能让我的模型更好(如果有什么我可以做的)。随时建议我改进。
tensorflow - 用于车牌识别的预训练 LeNet 模型
我已经通过tensorflow 和 python为车牌识别系统实现了一种 LeNet 模型。我的模型仅在我的训练数据上进行了训练,并在测试数据上进行了测试。我的数据集包含分段图像,其中每张图像中只有一个字符。这就是我的数据的样子。我创建的模型表现不佳,所以我现在正在寻找可以通过迁移学习使用的模型。由于大多数模型已经在庞大的数据集上进行了训练,因此我查看了一些模型,例如 AlexNet、ResNet、GoogLeNet 和 Inception v2。这些模型中的大多数都没有接受过我想要的数据类型的训练,即字母和数字。
问题:我是否应该继续使用其中一种模型并在我的数据集上训练它们,还是有更好的模型可以提供帮助?对于这样的模型,keras 会是一个更好的选择,因为它比 Tensorflow 更高级吗?
问:我更喜欢使用 LeNet 模型本身,因为我的笔记本电脑规格不足,训练其他模型肯定需要很长时间。那么有没有使用机器打印的字符图像来训练模型的模型实现,然后我可以用它来训练模型的最后一层在我的数据上?
python - 在 Tensorflow 中使用迁移学习训练 Mobilnet V2
伙计们,
如何使用 mobilenet v2 进行迁移/域学习?我使用 mobilnet v1 训练代码来训练 mobilenet v1,但是在模型存储库或 tensorflow 存储库中是否有训练 v2 的编写代码?
https://github.com/tensorflow/models/tree/master/research
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/image_retraining
tensorflow - TF Object Detection API 中的迁移学习:如何只训练最后几层的权重?
我从 TF/Model_Zoo 借了所有东西(配置文件和模型文件原样),并通过使用我的图像和注释开始训练,而不更改路径以外的配置文件。在原始配置文件中,没有类似的细节:
} freeze_variables: ".*FeatureExtractor." }
我相信这意味着一切都在接受再培训,这是真的吗?当我查看张量板时,看起来权重没有变化,但偏差正在变化。我怎样才能确保重量也得到训练?
另外,我想只重新训练最后 2 层(或最后 n 层),就像常规迁移学习一样。使用 TF 对象检测 API 可以做到这一点吗?
python - PyTorch:GPU 执行时间
我正在关注 PyTorch 上的不同教程。我正在尝试使用 GPU 速度,但在网站上公布的执行时间和我的现实之间遇到了问题! https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html
你可以在这里找到页面末尾的代码,我们可以看到程序在 1 分钟 30 分钟内完成,而在我的电脑上是 6/7 分钟!你能试试,告诉我你有多少时间吗?看到使用与网站相同的文件代码存在很大差异,我感到非常困惑!这将使我了解问题是否来自我的 GPU :)
我的配置:GTX 1080Ti Windows10 Cuda 9.1 Pytorch 0.4.0
编码:
谢谢大家!
python - VGG16 迁移学习可变输出
使用 VGG16 进行迁移学习时观察到的奇怪行为。
但是,当model.predict(image)
使用时,输出在分类方面是不同的,即,有时它将图像分类为第 1 类,而下一次将同一图像分类为第 2 类。
python - keras 模型中损失函数的奇怪行为,具有预训练的卷积基础
我正在尝试在 Keras 中创建一个模型,以从图片中进行数值预测。我的模型有densenet121卷积基础,顶部有几个附加层。除了最后两个层之外的所有层都设置为layer.trainable = False
。我的损失是均方误差,因为它是一个回归任务。在训练期间,我得到loss: ~3
,而对同一批数据的评估给出loss: ~30
:
纪元 1/1 32/32 [===============================] - 0s 11ms/step - loss: 2.5571
32/32 [===============================] - 2s 59ms/步 29.276123046875
我在训练和评估期间提供完全相同的 32 张图片。我还使用预测值计算损失y_pred=model.predict(dat[0])
,然后使用 numpy. 结果与我从评估中得到的结果相同(即 29.276123 ...)。
有人建议这种行为可能是由于BatchNormalization
卷积基础中的层(在 github 上讨论)。当然,BatchNormalization
我的模型中的所有层也已设置layer.trainable=False
为。也许有人遇到过这个问题并想出了解决方案?
tensorflow - CoreMLTools 转换导致“读取 protobuf 规范时出错。验证器错误”
我一直致力于构建一个自定义卷积网络,该网络已保存到 .h5 文件中。另外一个我通过弹出最后一层(FC)来应用迁移学习,然后用新数据编译模型。再次以 .h5 格式保存模型。当我尝试将此模型转换为 mlModel 格式时会出现问题。我收到以下错误:
我正在冻结原始卷积神经网络的层。我正在使用的版本是:
- 喀拉斯 (2.1.6)
- Protobuf(3.6.0)
- 张量流(1.8.0)
对于转换:
我试过添加输入名称等等。仍然得到相同的结果。
我将不胜感激任何建议。先感谢您!
python-3.x - Keras 中的迁移学习
可以在程序执行期间直接从 keras 存储库下载任何 CNN 的权重,使用:
但是是否可以单独下载在 imagenet 上训练的权重并使用它来运行 CNN 模型?