问题标签 [pre-trained-model]
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-3.x - 如何在 Keras 中对 InceptionV3 进行微调和测试?
我正在阅读有关 Keras 的文档以及 StackOverFlow 上以前的问题和回复。目前,这是我到目前为止所拥有的:
我目前收到一条错误消息,提示“decode_predictions 中的第 82 行,值错误:'decode_predictions' 需要一批预测(即二维形状数组(样本,1000))。找到形状为 (1, 2) 的数组"
有什么我忘了做的吗?我目前无计可施。任何和所有的帮助将不胜感激。先感谢您
deep-learning - 改变预训练 word2vec 向量的维度
我有两个不同的词嵌入预训练模型,我想将它们组合在一起,以便一个模型中缺失的词可以被另一个模型补充(以防另一个模型包含第一个模型中缺失的词)。但是模型中的向量具有不同的维度。第一个模型向量为 300 维,第二个模型向量为 1000 维。
我可以简单地保留前 300 个维度并在第二个模型中丢弃其余的(700 个)并构建一个 300 个维度的组合模型吗?
keras - Keras - 分类器未从预训练模型的转移值中学习
我目前正在尝试使用预训练的网络并在此数据集上进行测试。最初,我使用 VGG19,只微调了最后的分类器以适应我的 120 个类。我让所有层都可训练,以通过更深入的训练来提高性能。问题是模型非常慢(即使我让它运行一个晚上,我也只有几个 epoch 并且达到了大约 45% 的准确度——我有一个 GPU GTX 1070)。
然后,我的想法是冻结这个模型的所有层,因为我只有 10k 图像并且只训练最后几个密集层,但它仍然不是很快。
看完这个视频(大约 2 分 30 秒)后,我决定用 InceptionResnetv2 复制 Transfer-Values 的原理。
我处理了每张图片,并使用以下代码将输出保存在一个 numpy 矩阵中。
X 是形状为 (10222, 1536) 的矩阵,y 是 (10222, 1)。
之后,我设计了我的分类器(几个拓扑),我不知道为什么它不能执行任何学习。
您可以在下面找到模型的输出:
我尝试更改拓扑、激活函数、添加 dropout,但没有任何改进。
我不知道我这样做的方式有什么问题。X 矩阵不正确吗?是否允许仅将预训练模型用作特征提取器,然后使用第二个模型执行分类?
非常感谢您的反馈,问候,尼古拉斯
opencv - 张量流上的输入通道等于 6
我需要合并 RGB 和 YCRCB 通道,作为使用 mobilenet_1.0_224 模型对 tensorflow 进行再训练的输入数据。
/tensorflow/examples/image_retraining/retrain.py
我在 func 中更改了文件get_random_distorted_bottlenecks
:
至
和 func create_bottleneck_file
,我插入:
前
最后,我将“mobilenet”输入通道从3
更改为6
。
我认为现在mobilenet-retraining的输入数据通道是6。我运行retrain.py,然后得到这个:
InvalidArgumentError(参见上面的回溯):通道必须是 0、1、3 或 4,得到 6
°°节点:DecodeJpeg_1 = DecodeJpeg°acceptable_fraction=1,channels=6,dct_method="",fancy_upscaling=true,ratio=1 , try_recover_truncated=false, _device="/job:localhost/replica:0/task:0/cpu:0"§(_arg_DistortJPGInput_0_0)§§
我该如何解决?是否合法更改频道超过 4 ?
tensorflow - 如何恢复只有一个扩展名为“.model”的文件的张量流模型
我想使用一个未知作者提供的预训练张量流模型。我不知道他/她是如何设法将 tensorflow 模型(他/她使用 tensorflow 版本 >= 1.2)保存到一个扩展名为“.model”的文件中,因为通常我得到三个文件“.meta”、“ .data'、'.index' 或一个带有 '.ckpt' 的文件。
如何恢复这个预训练模型?以后如何将模型保存为这种格式?
谢谢。
python - 在 C++ 中使用 OpenCV-3.4 中的 tensorflow 重新训练图
我最近开始使用 tensorflow,并参考了https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#3中的 tensorflow 迁移学习教程,并用我自己的图像数据重新训练了 InceptionV3 模型。在 python 中,我能够在 Windows 10 和 Ubuntu-16.04 上训练模型和分类图像。
我需要在 C++ 中使用重新训练的模型。
- Windows 10 -Python 3.5 -OpenCV3.4 -Visual Studio 2017
我正在使用代码示例https://github.com/opencv/opencv/blob/master/samples/dnn/tf_inception.cpp 根据本教程,我应该使用 inception5,但我需要使用 InceptionV3 . 这就是我加载重新训练的图形、类名文件和配置文件的方式。
代码在
错误详情:
ReadModel.exe 中 0x00007FFE263D7788 处的未处理异常:Microsoft C++ 异常:内存位置 0x0000003B780FB3A0 处的 cv::Exception。发生了
命令行输出:
DecodeJpeg:DecodeJpeg(DecodeJpeg/contents)accepted_fraction:[] channels:[] fancy_upscaling:[] try_recover_truncated:[] dct_method:[] ratio:[] OpenCV 错误:未指定的错误(操作 DecodeJpeg 中的未知层类型 DecodeJpeg)在 cv:: dnn::experimental_dnn_v3::`anonymous-namespace'::TFImporter::populateNet,文件 C:\build\master_winpack-build-win64-vc14\opencv\modules\dnn\src\tensorflow\tf_importer.cpp,第 1487 行
我的理解是我需要从重新训练的图表中删除一些信息。我搜索了这些错误和可能的解决方案,但没有任何帮助。看起来像https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py上的 freeze_graph.py可能有帮助,但我不能使用它,因为我不知道从哪里获得检查站。请帮我解决这个问题。我会很感激的。
conv-neural-network - 在灰度图像网络上训练的 VGG16
我发现 VGG16 网络在(彩色)imagenet 数据库(如 .npy)上进行了预训练。是否有在可用的 imagenet 数据库的灰度版本上预训练的 VGG16 网络?
(在灰色 1 通道输入上使用 conv1.1 层的 3 通道过滤器的通常“技巧”对我来说还不够。我正在研究网络性能的增量改进,所以我需要看看当预训练模型“查看”灰度输入时,迁移学习的行为)。
谢谢!
python - 为预训练的 inception v3 更改优化器
我想知道如何将 inception v3 的优化器从 SGD 更改为 Adam Optimizer。我想保持预先训练的权重,而不是默认的 SGD 优化器。如果我添加 Adam 优化器,它会抛出一个错误,说它在预训练的检查点文件中找不到 Adam 优化器:
只训练神经网络的顶层而不训练 inception 效果很好。下面是用于实现 inception v3 的代码(来自 im2xt):
下面是用于训练模型的代码:
我将不胜感激对此的任何见解
编辑:添加错误消息
python-3.x - 在训练预训练张量流模型的变量时调试优化运行
我正在加载一个预先训练的模型,然后根据我的自定义损失仅提取我想要优化(基本上更改或微调)的可训练变量。问题是我将一小批数据传递给它的那一刻,它只是挂起并且没有任何进展。我使用 Tensorboard 进行可视化,但在没有可用日志信息时不知道如何调试。我在它周围放了一些基本的打印语句,但没有得到任何有用的信息。
只是给出一个想法,这是顺序的一段代码
模型来自这个存储库:问题在于训练,即最后一步。我验证了 theta 列表不是空的,它有 26 个元素,比如 ... SkipThoughts/decoder_pre/gru_cell/candidate/layer_norm/w/beta:0 SkipThoughts/decoder_pre/gru_cell/candidate/layer_norm/w/gamma:0 SkipThoughts/logits/weights:0 SkipThoughts/logits/biases:0 SkipThoughts/decoder_post/gru_cell/gates/layer_norm/w_h/beta:0 ...
此外,即使在使用tf.debug之后,问题仍然存在。也许它真的需要很多时间或者被困在等待其他一些过程?所以,我也尝试分解
踏入
这样我就可以检查是否首先计算了梯度,它卡在了同一点上。除此之外,我还尝试使用tf.gradients仅对其中一个变量以及一维变量计算梯度,但问题仍然存在。
我在带有 1 个 GPU Tesla K80 的 Azure 集群上的 IPython 笔记本上运行这段代码。GPU 使用率在整个执行过程中保持不变,并且没有内存不足错误。
内核中断不起作用,停止它的唯一方法是重新启动笔记本电脑。此外,如果我将此代码编译成 Python 文件,那么我也需要显式终止该进程。但是,在任何这种情况下,我都无法通过堆栈跟踪来知道它被卡住的确切位置!应该如何调试这样的问题?
在这方面的任何帮助和指示将不胜感激。
conv-neural-network - 保存并加载后继续训练 deeplearning4j 模型
我正在使用卷积神经网络,我正在保存它并通过模型序列化程序类加载它。
我想要做的是能够在稍后回来并继续根据提供给它的新数据训练模型。
我正在做的是使用 ComputationGraph net = ModelSerializer.restoreComputationGraph(modelFileName); 加载它
然后我用 net.train(dataSetIterator); 像以前一样给它数据。
这似乎有效,但它使我的准确性非常糟糕。在我这样做之前大约是 89%,并且,使用相同的数据,经过几次迭代后,它的准确率大约是 50%(使用它刚刚训练自己的相同数据,所以如果有的话,它应该变得更加准确正确的?)。
我错过了一步吗?