Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行Tensorflow对象检测API时发生RAM错误_Tensorflow_Object Detection - Fatal编程技术网

运行Tensorflow对象检测API时发生RAM错误

运行Tensorflow对象检测API时发生RAM错误,tensorflow,object-detection,Tensorflow,Object Detection,在安装Tensorflow对象检测API并遵循所有说明后,我开始使用自己的数据集进行培训。很快,程序开始使用所有RAM,进程被终止。我已经阅读了所有关于这个主题的帖子,似乎没有人有答案。这是试图找出此问题原因的另一次尝试 计算机规格: 12GB内存 Ubuntu 14.04 LTS tensorflow gpu NVIDIA GTX 1070-8.0 GB 日志是: INFO:tensorflow:Starting Queues. INFO:tensorflow:global_step/sec:

在安装Tensorflow对象检测API并遵循所有说明后,我开始使用自己的数据集进行培训。很快,程序开始使用所有RAM,进程被终止。我已经阅读了所有关于这个主题的帖子,似乎没有人有答案。这是试图找出此问题原因的另一次尝试

计算机规格:

  • 12GB内存
  • Ubuntu 14.04 LTS
  • tensorflow gpu
  • NVIDIA GTX 1070-8.0 GB
  • 日志是:

    INFO:tensorflow:Starting Queues.
    INFO:tensorflow:global_step/sec: 0
    Killed
    

    从其他人写的内容来看,这肯定是内存使用问题。任何帮助都会受到欢迎。

    检查dmesg。如果是内存不足错误,可以通过增加交换内存来解决


    大量增加交换内存分配,开始培训,看看您的具体问题实际需要多少空间。然后,您可以微调交换内存大小

    检查dmesg。如果是内存不足错误,可以通过增加交换内存来解决


    大量增加交换内存分配,开始培训,看看您的具体问题实际需要多少空间。然后,您可以微调交换内存大小

    您可以通过调整配置文件来实现这一点

    大部分RAM被输入队列占用。但由于数据是超快速tfrecord格式,因此不需要准备那么多示例

    根据您使用的型号(SSD,更快的R-CNN),这些设置会有所不同,因为SSD可以使用比FRCNN更高的批次(基本上使用1个批次)

    在配置文件中识别或添加以下内容,并播放队列的编号

    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
    }
    

    通过检查描述模型所有设置的
    对象检测/protos
    中的
    .proto
    文件,可以找到这些和其他设置。

    您可以通过调整配置文件来实现这一点

    大部分RAM被输入队列占用。但由于数据是超快速tfrecord格式,因此不需要准备那么多示例

    根据您使用的型号(SSD,更快的R-CNN),这些设置会有所不同,因为SSD可以使用比FRCNN更高的批次(基本上使用1个批次)

    在配置文件中识别或添加以下内容,并播放队列的编号

    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
    }
    

    通过检查描述模型所有设置的
    对象检测/protos
    中的
    .proto
    文件,可以找到这些和其他设置。

    您怎么会认为这是因为内存不足?你检查过(h)top的输出了吗?所以我一直在监视cpu和内存性能,它占用了所有的资源。第二,其他各种帖子都提出了同样的问题,都提出了同样的问题,这是一个OOM问题。你能说出你的图像的分辨率吗?它们是960x1248。你怎么会认为这是因为内存不足?你检查过(h)top的输出了吗?所以我一直在监视cpu和内存性能,它占用了所有的资源。第二,有很多其他的帖子都提出了同样的问题,都提出了同样的问题,这是一个OOM问题。你能说一下你的图片的分辨率是多少吗?它们是960x1248。尽管这帮助我解决了这个问题。这有什么坏处吗。由于输入序列排队,我想这应该是一个问题。如果数字太小,并且您的驱动器和/或CPU速度较慢,那么您的GPU利用率将较低,因为它将等待下一批进行预处理。因此,请关注nvidia smi,如果您发现gpu利用率较低,请对输入管道进行基准测试(问题可能在其他地方)。尽管这有助于我解决问题。这有什么坏处吗。由于输入序列排队,我想这应该是一个问题。如果数字太小,并且您的驱动器和/或CPU速度较慢,那么您的GPU利用率将较低,因为它将等待下一批进行预处理。因此,请关注nvidia smi,如果您发现gpu利用率较低,请对输入管道进行基准测试(但问题可能出在其他地方)。