xsub方式和xview方式如何删除指定的缺失值

# -*- coding: utf-8 -*-
import pickle
 
pkl_file_path = '/root/mmaction2/until/no_miss/total_no_miss_ntu60_lite-hrnet.pkl'
xsub_train_not_in = '/root/mmaction2/until/xsub_miss_value/xsub_train_not_in.txt'
xsub_val_not_in = '/root/mmaction2/until/xsub_miss_value/xsub_val_not_in.txt'
xview_train_not_in = '/root/mmaction2/until/xview_miss_value/xview_train_not_in.txt'
xview_val_not_in = '/root/mmaction2/until/xview_miss_value/xview_val_not_in.txt'

output_pkl_file_path = '/root/mmaction2/until/exist_miss_lite-hrnet.pkl'
 
# 读取.pkl文件
with open(pkl_file_path, 'rb') as file:
    pkl_data = pickle.load(file)
 
print(pkl_data.keys())
print(type(pkl_data['split']))
a = pkl_data['split']
print(a.keys())
print(type(a['xsub_train']))
print(len(a['xsub_train']))
print(type(a['xsub_val']))
print(len(a['xsub_val']))
print(type(a['xview_train']))
print(len(a['xview_train']))
print(type(a['xview_val']))
print(len(a['xview_val']))
print('原始未删除', len(pkl_data['annotations']))
 
# 读取xsub_train_not_in.txt文件
with open(xsub_train_not_in, 'r', encoding='utf-8') as file:
    xsub_train_missing_data = file.read().splitlines()
 
# 读取xsub_val_not_in.txt文件
with open(xsub_val_not_in, 'r', encoding='utf-8') as file:
    xsub_val_missing_data = file.read().splitlines()
 
# 读取xview_train_not_in.txt文件
with open(xview_train_not_in, 'r', encoding='utf-8') as file:
    xview_train_missing_data = file.read().splitlines()
 
# 读取xview_val_not_in.txt文件
with open(xview_val_not_in, 'r', encoding='utf-8') as file:
    xview_val_missing_data = file.read().splitlines()


# 获取xsub_train、xsub_val和annotations
xsub_train = pkl_data['split']['xsub_train']
xsub_val = pkl_data['split']['xsub_val']
xview_train = pkl_data['split']['xview_train']
xview_val = pkl_data['split']['xview_val']
annotations = pkl_data['annotations']
 
# 从xsub_train中删除xsub_train_missing_data中的值
for missing_item in xsub_train_missing_data:
    xsub_train = [item for item in xsub_train if item != missing_item]
 
# 从annotations中删除frame_dir在xsub_train_missing_data中的字典项
for missing_item in xsub_train_missing_data:
    annotations = [annotation for annotation in annotations if annotation['frame_dir'] != missing_item]
 
# 从xsub_val中删除xsub_val_missing_data中的值
for val_item in xsub_val_missing_data:
    xsub_val = [item for item in xsub_val if item != val_item]
 
# 从annotations中删除frame_dir在xsub_val_missing_data中的字典项
for val_item in xsub_val_missing_data:
    annotations = [annotation for annotation in annotations if annotation['frame_dir'] != val_item]
 
# 从xview_train中删除xview_train_missing_data中的值
for missing_item in xview_train_missing_data:
    xview_train = [item for item in xview_train if item != missing_item]
    
# 从xview_val中删除xview_val_missing_data中的值
for missing_item in xview_val_missing_data:
    xview_val = [item for item in xview_val if item != missing_item]    
    
# 更新pkl_data
pkl_data['split']['xsub_train'] = xsub_train
pkl_data['split']['xsub_val'] = xsub_val
pkl_data['split']['xview_train'] = xview_train
pkl_data['split']['xview_val'] = xview_val
pkl_data['annotations'] = annotations
 
# 将更新后的数据保存回.pkl文件
with open(output_pkl_file_path, 'wb') as file:
    pickle.dump(pkl_data, file)
 
print(f"结果已保存到文件: {output_pkl_file_path}")
 
# 验证更新后的pkl文件
with open(output_pkl_file_path, 'rb') as file:
    updated_pkl_data = pickle.load(file)
 
print('处理过后的pkl:')
print(updated_pkl_data.keys())
print(type(updated_pkl_data['split']))
a = updated_pkl_data['split']
print(a.keys())
print(type(a['xsub_train']))
print(len(a['xsub_train']))
print(type(a['xsub_val']))
print(len(a['xsub_val']))
print(type(a['xview_train']))
print(len(a['xview_train']))
print(type(a['xview_val']))
print(len(a['xview_val']))
print('annotation长度', len(updated_pkl_data['annotations']))

(openmmlab) root@autodl-container-5eae43930d-21e9f434:~/mmaction2/until/no_miss/delete_miss# python delete_miss.py
dict_keys(['split', 'annotations'])
<class 'dict'>
dict_keys(['xsub_train', 'xsub_val', 'xview_train', 'xview_val'])
<class 'list'>
40320
<class 'list'>
16560
<class 'list'>
37920
<class 'list'>
18960
原始未删除 56880
结果已保存到文件: /root/mmaction2/until/exist_miss_lite-hrnet.pkl
处理过后的pkl:
dict_keys(['split', 'annotations'])
<class 'dict'>
dict_keys(['xsub_train', 'xsub_val', 'xview_train', 'xview_val'])
<class 'list'>
40091
<class 'list'>
16487
<class 'list'>
37646
<class 'list'>
18932
annotation长度 56578

 

NTU RGB+D数据集 训练集、测试集划分与缺失值处理-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值