安装Tensorflow Object Detection API并遵循所有说明后,我开始使用自己的数据集进行培训。该程序很快就开始使用所有RAM,并且该过程被杀死。我已经阅读了关于这个主题的所有帖子,似乎没有人有答案。这是试图弄清楚这个问题的原因的另一种尝试。
电脑规格:
日志是:
INFO:tensorflow:Starting Queues.
INFO:tensorflow:global_step/sec: 0
Killed
从别人的写作来看,它绝对是一个内存使用问题。任何帮助都很受欢迎。
答案 0 :(得分:0)
检查dmesg。如果是内存不足错误,您可以通过增加交换内存来解决此问题。
大量增加您的交换内存分配,开始培训,并查看您的具体问题实际需要多少区域。然后,您可以微调交换内存大小。
答案 1 :(得分:0)
您可以通过调整配置文件来完成此操作。
It turns out大多数RAM由输入队列使用。但由于数据采用超快速tfrecord格式,因此无需保留许多示例。
根据您使用的型号(SSD,更快的R-CNN),这些设置会有所不同,因为SSD可以使用更高批次的FRCNN(基本上使用1批)。
在配置文件中识别或添加以下内容,并使用队列的数字进行播放。
<div class="info">
<img class="sprite" src="https://cdn.bulbagarden.net/upload/e/ea/113MS.png" />
<code class="pkmn_name">15Characterssss</code>
<div class="pkmn_special">
<img src="https://cdn.bulbagarden.net/upload/c/c5/Leaf_Crown_Sprite.png" />
<img src="https://image.ibb.co/kB8vi6/heart.png">
<img src="https://image.ibb.co/e7w4bR/Shiny_VIStar.png">
</div>
<div class="exp"> </div>
</div>
通过检查train_config: {
# ... other settings
batch_size: 1 # this is for FRCNN
batch_queue_capacity: 10
num_batch_queue_threads: 4
prefetch_queue_capacity: 5
}
train_input_reader: {
tf_record_input_reader {
input_path: "/path/to/train.tfrecord"
}
label_map_path: "/path/to/label/map.pbtxt"
queue_capacity: 400
min_after_dequeue: 200
}
eval_input_reader: {
tf_record_input_reader {
input_path: "/path/to/eval.tfrecord"
}
label_map_path: "/path/to/label/map.pbtxt"
shuffle: true
queue_capacity: 20
min_after_dequeue: 10
num_readers: 1
}
中描述模型所有设置的.proto
文件,找到了这些设置和其他设置。