数据格式转换: mat文件转换成py文件

对于python来说,当然可以直接使用scipy包中的loadmat方法导入

from scipy.io import loadmat
mat = loadmat(r"D:/dataset/ModelNet/traindata.mat")

这里的数据是对于ModelNet-10数据集单视角下的处理结果。

这里我们尝试将mat文件转换成py文件,其具有与cifar10相同的形式。

"""
This file is to translate the .mat file to .py file.
"""
import numpy as np
import pickle
import h5py

# data path
trainpath = 'D:/dataset/ModelNet/traindata.mat'
# open files
file = h5py.File(trainpath, 'r')
# the data is transposed via h5py.
# get the data and labels
data = file['testdata'][:]
#print(data.shape)
label = file['testlabel'][:]
# tanpose, if needed
data = np.transpose(data)
#label = label.astype(np.int32)
data_len = len(data)
# create new 
inter_data =[[]]
inter_label = np.zeros((data_len,))

# data tranfer
for i in range(data_len):
    img = data[i, :]
    if inter_data == [[]]:
        inter_data = [img]
    else:
        inter_data = np.concatenate((inter_data, [img]), axis = 0)

    inter_label[i] = label[0, i]

# let the label to int type
inter_label = inter_label.astype(np.int32)

# 创建字典来进行保存
inter_dict = {'data': inter_data, 'label': inter_label}
f_train = open('D:/dataset/ModelNet/train','wb')
pickle.dump(inter_dict, f_train)

如此保存的文件可直接放入tensorflow或者keras构建的网络中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值