问题标签 [tf-slim]

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 回答
283 浏览

tensorflow - 是否可以在苗条训练期间显示分类错误和连续错误?

我不仅想观察应该在训练期间优化的连续错误,还想观察训练期间另一个不可区分的指标(如 top1 或 top5 分类错误)。可能吗?

例子:

我需要的只是重新定义train_step_fn并传递给[train_op, another_loss]的slim.learning.train数组

0 投票
1 回答
815 浏览

python - 使用 tf.slim 进行多 GPU 训练比单 GPU 需要更多时间

我正在使用 tf.slim 的train_image_classifier.py脚本在 CIFAR10 数据集上微调 ResNet50:

对于 3k 步,在单个 GPU(Tesla M40)上运行大约需要 3000 万,而在 4 个 GPU 上运行需要 50+ 百万。(两种情况下的准确度相似:~75% 和~78%)。

我知道多 GPU 设置延迟的一个可能原因是加载图像,但在 tf.slim 的情况下,它使用 CPU。关于可能是什么问题的任何想法?谢谢!

0 投票
0 回答
1200 浏览

python - 两个张量流初始模型“inception_v3_2016_08_28.tar.gz”和“classify_image_graph_def.pb”有什么区别?

我已经尝试了两种用于转移学习的 tensorflow 模型。模型是

  1. inception_v3_2016_08_28.tar.gz - 来自tensorflow-models
  2. classify_image_graph_def.pb - 附带 tensorflow image_retraining 代码。

但我得到的结果完全不同。第二个模型比第一个模型表现得更好。是预期的吗?第一个模型的准确率为 57%,而第二个模型的准确率为 80%。

第一个模型是检查点文件。对于迁移学习,我已将检查点文件转换为 protobuf 文件。然后使用 tensorflow 附带的 python 代码 retrain.py 进行再训练。以下代码用于将检查点文件转换为 protobuf 文件。

0 投票
2 回答
4206 浏览

tensorflow - TensorFlow-Slim 多 GPU 训练

我正在使用 TensorFlow-Slim。我的目标是在多 GPU 模式下运行给定的标准脚本(位于 /models/slim/scripts)。我已经测试了finetune_resnet_v1_50_on_flowers.sh 脚本(克隆于 2017 年 4 月 12 日)。我刚刚在培训部分的末尾添加了 --num_clones=2 (灵感来自 /slim/deployment/model_deploy_test.py 和以前的 StackOverflow 答案):

来自部署/model_deploy_test.py 的代码:

我有一个警告(“忽略设备规范”):

GPU 运行正常(内存使用和 GPU 利用率),但与单个 GPU 训练相比,训练速度并不快。

此问题可能与:https ://github.com/tensorflow/tensorflow/issues/8061

我很高兴收到您对此问题的回答、意见或具体建议。

CUDA版本:发布8.0、V8.0.53

TensorFlow 从二进制安装,经过测试的版本:1.0.1 和 1.1.0rc

GPU:英伟达 Tesla P100 (SXM2)

0 投票
0 回答
1281 浏览

python - TF-Slim:计算精度

我正在使用 TensorFlow-Slim,并在 eval_image_classifier.py(位于 /models/slim/)中添加了一些代码行,用于计算 TP、TN、FP 和 FN。但是,计算精度 = (TP + TN) / (TP + FP + FN + TN) 不等于 slim.metrics.streaming_accuracy(predictions, labels) 给出的精度。

我已经从这里更改了标准代码:

...对此:

输出:

我已经测试了finetune_resnet_v1_50_on_flowers.sh 脚本(位于/models/slim/scripts),没有进行任何更改(克隆于2017 年4 月12 日)。

我找不到我的错误。我很高兴收到您对此问题的回答、意见或具体建议。

CUDA版本:发布8.0、V8.0.53

TensorFlow 从二进制安装,经过测试的版本:1.0.1 和 1.1.0rc1

GPU:英伟达 Tesla P100 (SXM2)

0 投票
1 回答
715 浏览

python - 不知道为什么我的 tensforflow 的 build_image_data.py 脚本不起作用

我正在尝试将一组 jpg 图像转换为 TFRecord,以便在 Tensorflow 中与 CNN 一起使用。我正在使用来自此处的脚本 build_image_data.py:

https://github.com/tensorflow/models/blob/master/inception/inception/data/build_image_data.py

我创建了一个验证目录和一个训练目录,以及一个带有适当标签的 labels.txt 文件。我使用 jupyter notebook 运行脚本(我也尝试过通过命令行),并将 tf.app.flags.DEFINE_string 参数更改为适当的目录/文件名。当我运行它时,我收到以下错误:

有什么线索吗?我从包含我的验证和培训文件夹的同一目录运行脚本。谢谢。

编辑:尝试使用完整路径,但仍然出现相同的错误。这是代码的相关部分,我确定这是我的一些简单错误。

0 投票
2 回答
1916 浏览

tensorflow - 使用预训练的 ResNet V2 模型创建 Slim 分类器

我正在尝试创建一个图像分类器,该分类器利用 slim 文档中提供的预训练 ResNet V2 模型。

这是到目前为止的代码:

问题是我不断收到此错误:

所以似乎 TF/Slim 无法找到任何变量,当我打电话时,这一点很清楚:

因为它输出一个空数组。

如何使用预训练模型?

0 投票
1 回答
575 浏览

tensorflow - 如何使用不同的可训练变量从 Inception-3 检查点恢复训练

我有一个非常常见的用例,即冻结 Inception 的底层并只训练前两层,之后我降低学习率并微调整个 Inception 模型。

这是我运行第一部分的代码

它运行正常,然后是我运行第二部分的代码

请注意,在第二部分中,我没有将任何内容传递给create_train_op'svariables_to_train参数。然后显示此错误

我怀疑它正在寻找不存在的 InceptionV3/Conv2d_4a_3x3 层的 RMSProp 变量,因为我没有在前一个检查点训练该层。我不确定如何实现我想要的,因为我在文档中看不到有关如何执行此操作的示例。

0 投票
3 回答
4039 浏览

python - II 如何用现有模型的值初始化 slim.conv2d() 中的权重

slim.conv2d用来设置 VGG-net

如果我想初始化现有 VGG 模型的变量conv1conv2来自现有 VGG 模型的变量。

我该怎么做?

0 投票
1 回答
1255 浏览

tensorflow - TF-slim : FIFOQueue 已关闭且元素不足(请求 1,当前大小 0)

我试图使用 slim 来制作我自己的数据集并读入它。当我试图读入它时,我收到以下错误:

raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue '_2_parallel_read/common_queue' is closed and has enough elements (requested 1, current size 0) [[Node: parallel_read/common_queue_Dequeue = QueueDequeueV2component_types=[DT_STRING, DT_STRING], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"]] [[Node: case/If_2/DecodePng/_117 = _Recvclient_terminated=false , recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name=" edge_12_case/If_2/DecodePng", tensor_type=DT_UINT8, _device="/job:localhost/replica:0/task:0/gpu:0"]]

由操作 u'parallel_read/common_queue_Dequeue' 引起,定义在:

OutOfRangeError(参见上面的回溯):FIFOQueue '_2_parallel_read/common_queue' 已关闭且元素不足(请求 1,当前大小 0)[[节点:parallel_read/common_queue_Dequeue = QueueDequeueV2component_types=[DT_STRING,DT_STRING],timeout_ms=-1,_device ="/job:localhost/replica:0/task:0/cpu:0"]] [[节点:case/If_2/DecodePng/_117 = _Recvclient_terminated=false, recv_device="/job:localhost/replica:0/task :0/gpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_12_case/If_2/DecodePng", tensor_type=DT_UINT8, _device=" /job:localhost/replica:0/task:0/gpu:0"]]

正如我所想的那样,Fifo 队列似乎是空的(未填充)......

有人知道 slim 的哪个部分负责填充 FiFO 吗?这是我尝试的代码: