3.打造自己的图像识别模型

📅 2026/7/3 7:36:42
3.打造自己的图像识别模型
1.微调是什么用已经训练好的成熟预训练图像模型比如 VGG16拿着它在我们的专属数据集上继续小幅训练只轻微调整模型权重、适配我们的任务。怎么做数据准备1.将数据集分为训练集和验证集2.转换为tffrecord格式data_convert.py:# coding:utf-8 from __future__ import absolute_import import argparse import os import logging # TF2兼容TF1会话模式解决底层Session、Coordinator兼容 import tensorflow.compat.v1 as tf tf.disable_eager_execution() from src.tfrecord import main def parse_args(): parser argparse.ArgumentParser() parser.add_argument(-t, --tensorflow-data-dir, defaultpic/) parser.add_argument(--train-shards, default2, typeint) parser.add_argument(--validation-shards, default2, typeint) parser.add_argument(--num-threads, default2, typeint) parser.add_argument(--dataset-name, defaultsatellite, typestr) return parser.parse_args() if __name__ __main__: logging.basicConfig(levellogging.INFO) args parse_args() args.tensorflow_dir args.tensorflow_data_dir args.train_directory os.path.join(args.tensorflow_dir, train) args.validation_directory os.path.join(args.tensorflow_dir, validation) args.output_directory args.tensorflow_dir args.labels_file os.path.join(args.tensorflow_dir, label.txt) # 映射参数名对齐tfrecord.py内部校验 args.train_shards args.train_shards args.validation_shards args.validation_shards args.num_threads args.num_threads args.class_label_base 0 if not os.path.exists(args.labels_file): logging.warning(Can\t find label.txt. Now create it.) all_entries os.listdir(args.train_directory) dirnames [] for entry in all_entries: full_path os.path.join(args.train_directory, entry) if os.path.isdir(full_path): dirnames.append(entry) with open(args.labels_file, w, encodingutf-8) as f: for dirname in dirnames: f.write(dirname \n) main(args)tfrecord.py:# coding:utf-8 from __future__ import absolute_import import argparse import os import logging # TF2兼容TF1会话模式解决底层Session、Coordinator兼容 import tensorflow.compat.v1 as tf tf.disable_eager_execution() from src.tfrecord import main def parse_args(): parser argparse.ArgumentParser() parser.add_argument(-t, --tensorflow-data-dir, defaultpic/) parser.add_argument(--train-shards, default2, typeint) parser.add_argument(--validation-shards, default2, typeint) parser.add_argument(--num-threads, default2, typeint) parser.add_argument(--dataset-name, defaultsatellite, typestr) return parser.parse_args() if __name__ __main__: logging.basicConfig(levellogging.INFO) args parse_args() args.tensorflow_dir args.tensorflow_data_dir args.train_directory os.path.join(args.tensorflow_dir, train) args.validation_directory os.path.join(args.tensorflow_dir, validation) args.output_directory args.tensorflow_dir args.labels_file os.path.join(args.tensorflow_dir, label.txt) # 映射参数名对齐tfrecord.py内部校验 args.train_shards args.train_shards args.validation_shards args.validation_shards args.num_threads args.num_threads args.class_label_base 0 if not os.path.exists(args.labels_file): logging.warning(Can\t find label.txt. Now create it.) all_entries os.listdir(args.train_directory) dirnames [] for entry in all_entries: full_path os.path.join(args.train_directory, entry) if os.path.isdir(full_path): dirnames.append(entry) with open(args.labels_file, w, encodingutf-8) as f: for dirname in dirnames: f.write(dirname \n) main(args)得到以下文件使用TensorFlow Slim微调模型1.下载源代码2.定义新的datesets文件3.准备训练文件夹4.开始训练没训练出来.....