能不能写一个把一些图片随机的分为train、test、val三种,然后图片的路径分别存储在train.txt、test.txt、val.txt的python代码
时间: 2023-06-03 09:04:04 浏览: 79
可以的,以下是一个简单的Python脚本,用于将指定目录中的图片随机分为训练集、测试集、验证集,并将其路径存储在train.txt、test.txt、val.txt文件中。
```python
import os
import random
# 指定图片所在目录、训练集比例、测试集比例和验证集比例
data_dir = 'path/to/images'
train_ratio = 0.6
test_ratio = 0.2
val_ratio = 0.2
# 获取所有图片路径
all_files = []
for root, _, files in os.walk(data_dir):
for f in files:
file_path = os.path.join(root, f)
all_files.append(file_path)
# 计算分割点
num_files = len(all_files)
num_train = int(num_files * train_ratio)
num_test = int(num_files * test_ratio)
num_val = num_files - num_train - num_test
# 随机打乱图片路径
random.shuffle(all_files)
# 分割图片路径,并保存到文件
with open('./train.txt', 'w') as f:
for file_path in all_files[:num_train]:
f.write(file_path + '\n')
with open('./test.txt', 'w') as f:
for file_path in all_files[num_train:num_train+num_test]:
f.write(file_path + '\n')
with open('./val.txt', 'w') as f:
for file_path in all_files[num_train+num_test:]:
f.write(file_path + '\n')
```
请注意,这段代码仅提供了一种简单的实现方式,并不一定适用于所有情况。实际使用时需要根据具体需求进行修改和优化。
阅读全文