Windows下Visual Studio Code基于Pascal2012开始训练(CPU)

初学:Windows下Visual Studio Code基于Pascal2012开始训练(CPU)

简单的将SSD跑起来,总结在Anaconda + Visual Studio Code下遇到的一些问题。因为在CPU中进行训练,只是将功能跑起来,确认流程。

0. 参考

https://blog.csdn.net/yexiaogu1104/article/details/77415990/

I. 数据训练集准备和SSD算法准备

Tensorflow SSD算法链接:
https://github.com/balancap/SSD-Tensorflow

Pascal2012 训练集:
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/

II. 数据集准备

  1. 在Pascal2012下载数据集,数据集的内容如下:
    documents.PNG

  2. Pascal2012训练数据主要在Annotations文件内和JPEGImages文件夹内。Pascal2012训练数据主要在Annotations文件内和JPEGImages文件夹内。

  3. 在linux可以使用bash的方式运行tf_convert_data.py(查看参考的链接),因为在windows VSC,也可以在terminal窗口中使用python命令。第三种方法是直接在tf_convert_data.py内的tf.app.flags.DEFINE_string输入数据集路径和输出TFRecords的路径,每次把文件放在固定路径里面运行。

tf.app.flags.DEFINE_string(    
'dataset_dir', 'C:/Users/Name/Documents/GitHub/SSD_Tensorflow/datasets/VOCtrainval_11-May-2012/VOCdevkit/VOC2012/','Directory where the original dataset is stored.')
tf.app.flags.DEFINE_string(    
'output_name', 'voc_2012_train','Basename used for TFRecords output files.')
tf.app.flags.DEFINE_string(    
'output_dir', 'C:/Users/Name/Documents/GitHub/SSD_Tensorflow/pascal_record/','Output directory where to store TFRecords files.')

数据集转换完成之后,数据集文件.TFRecoard存在文件夹:

>Converting image 17125/17125
Finished converting the Pascal VOC dataset!

运行出现错误的注意事项:

  • 当出现以下提示时,有可能是应为训练集文件路径出现错误,请检查数据集:
tensorflow.python.framework.errors_impl.NotFoundError: NewRandomAccessFile failed to Create/Open: C:/Users/***/Documents/GitHub/***_SSD_Tensorflow/datasets/VOCtrainvaet
  • 当出现以下提示时,有可能是硬盘空间不够导致:
tensorflow.python.framework.errors_impl.UnknownError: Failed to WriteFile:C:/Users/***/Documents/GitHub/***_SSD_Tensorflow//pascalvoc_070.tfrecord 

II. 算法训练 - 不使用Fine-tune

  • 设定dataset_dir,训练集的文件夹地址:
tf.app.flags.DEFINE_string('dataset_dir', 'C:/Users/Name/Documents/GitHub/SSD_Tensorflow/pascal_record/', 'The directory where the dataset files are stored.')
  • 设定训练输出文件路径checkpoint, data, meta, index的文件夹地址:
tf.app.flags.DEFINE_string('train_dir', 'C:/Users/Name/Documents/GitHub/SSD_Tensorflow/tmp/tfmodel/', 'Directory where checkpoints and event logs are written to.')
  • 如果不使用fine-tunecheckpoint_path设定为None
tf.app.flags.DEFINE_string('checkpoint_path', None,'The path to a checkpoint from which to fine-tune.')

在CPU中进行训练需要

  1. 需要将数据格式调整为DATA_FORMAT = 'NHWC'
  2. 需要屏蔽session_config=config,该配置设置了GPU的资源分配,不适用可以屏蔽掉。
slim.learning.train(            
	train_tensor,            
	logdir=FLAGS.train_dir,            
	master='',            
	is_chief=True,            
	init_fn=tf_utils.get_init_fn(FLAGS),            
	summary_op=summary_op,            
	number_of_steps=FLAGS.max_number_of_steps,           
 	log_every_n_steps=FLAGS.log_every_n_steps,            
 	save_summaries_secs=FLAGS.save_summaries_secs,            
	saver=saver,            
	save_interval_secs=FLAGS.save_interval_secs,            
	#session_config=config,            
	sync_optimizer=None
)

如果路径在代码中设置好了默认路径,那么直接在VSC的终端运行

python train_ssd_network.py

就可以开始一个新的训练过程了,不过在CPU里面需要花费的时间很长。使用与训练模型也可以加快训练过程。目前只是把流程跑通。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值