【问题标题】:Tensorflow Slim Imagenet trainingTensorFlow Slim Imagenet 训练
【发布时间】:2017-08-01 17:11:33
【问题描述】:

我正在准备从头开始训练 ImageNet 模型的日期,但我对训练的工作方式有点困惑。

在准备 TF 记录时,我注意到 Inception 模型数据目录中有这个文件:“imagenet_metadata.txt”。该文件包含 21842 个类的标签,但训练脚本和“imagenet_lsvrc_2015_synsets.txt”文件仅适用于 1000 个类。

我想知道我需要做哪些修改才能在 21K 类而不是 1K 类上训练模型?

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    使用 slim 非常简单。要使用 slim 训练 imgnet 21k,我建议执行以下步骤:

    1.在 tf_models/slim/datasets 文件夹中创建一个 imagenet.py 文件的副本(例如 imgnet.py)。在新文件中更改所需 变量为您想要的值:

        _FILE_PATTERN = ####your tfrecord_file_pattern. for me('imgnet_%s_*.tfrecord')
        _SPLITS_TO_SIZES = {
            'train': ####Training Samples,
            'validation': ####Validation Samples,}
        _NUM_CLASSES = 21841  
    

    *wordnet 同义词集包含 21482 个条目,但 imagenet21k 中的类总数为 21481(n04399382 缺失)。因此请确定可用类的总数。

    *您还需要对代码进行一些修改,以便从本地地址加载同义词集文件。

        base_url = '/home/snf/libraries/tf_models/slim'
        synset_url = '{}/listOfTags.txt'.format(base_url)
        synset_to_human_url = '{}/imagenet21k_metadata.txt'.format(base_url)
    
    1. 将新数据集添加到 tf_models/slim/datasets 中的 datasetfactory.py :

      from datasets import imgnet
      datasets_map = {
      'cifar10': cifar10,
      'flowers': flowers,
      'imagenet': imagenet,
      'mnist': mnist,
      'imgnet': imgnet, #add this line to dataset_map
      
      }
      
    2. 在 tf_models/slim/ 创建包含这些行的 Train_Imgnet.sh 文件:

      TRAIN_DIR=trained/imgnet-inception-v4
      DATASET_DIR=/media/where/tfrecords/saved/tfRecords-fall11_21k
      CUDA_VISIBLE_DEVICES="0,1,2,3" python train_image_classifier.py 
      
        --train_dir=${TRAIN_DIR} \
        --dataset_name=imgnet \
        --dataset_split_name=train \
        --dataset_dir=${DATASET_DIR} \
        --model_name=inception_v4 \
        --max_number_of_steps=10000000 \
        --batch_size=32 \
        --learning_rate=0.01 \
        --learning_rate_decay_type=fixed \
        --save_interval_secs=60 \
        --save_summaries_secs=60 \
        --log_every_n_steps=100 \
        --optimizer=rmsprop \
        --weight_decay=0.00004\
        --num_readers=12 \
        --num_clones=4
      
    3. 将文件设置为可执行文件(Chmod +x Train_Imgnet.sh)并运行它(./Train_Imgnet.sh)

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 2017-06-10
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 2018-07-13
      • 2017-01-13
      相关资源
      最近更新 更多