Python-深度学习-学习笔记(14):keras对mat文件的加载与维度翻转问题的处理

Python-深度学习-学习笔记(14):keras对mat文件的加载与维度翻转问题的处理

keras对mat文件的加载

.mat文件即matlab软件生成的文件。
keras打开.mat有两种方式,一种是利用scipy库,另一种是利用h5py库。

1、scipy库打开mat文件

我们可以使用如下代码打开文件:

import scipy.io as scio
import numpy as np
data_path="DemonData.mat"
#读取mat\n"
data = scio.loadmat(data_path)

mat文件的位置要保存在当前使用的.ipynb文件的同一路径下。
在这里插入图片描述
大部分情况下这些数据是要进行数据处理和网络训练的,而导入的数据类型是字典型,所以我们需要将这些数据转换为array类型,包括标量\n,转换代码如下:

CLASS_NUM = data['classnum'][0][0]
SAMPLE_NUM = data['samplenum'][0][0]
X_data = data['X_data']
Y_data = data['Y_data']
del data
print('data has been imported!')

具体你得数据里面包括什么可以做出相应的更改,这里只是提供一个模板。

2、h5py库打开mat文件

如果mat文件大于2GB或者是文件的版本为-v7.3,我们需要采用如下代码打开:

import h5py
path = 'DemonData_LostInterference.mat'
data = h5py.File(path)

一般情况下如果出现错误:Please use HDF reader for matlab v7.3 files,请使用此方法打开!

读取mat文件张量发生转置

例如我设计的张量维度为(27,8400,2048)经过h5py读取以后变为(2048,8400,27)。

原因:matlab的.mat文件保存的时候,如果没有加-v7.3(save(‘data.mat’,’test’,’-v7.3’)),就不是h5py格式保存load之后的形状可能会转置。

解决方法:只要根据自己的需要添加np.transpose()函数即可,具体代码如下:

X_data = np.transpose(data['X_data'])
Y_data = np.transpose(data['Y_data'])
print(X_data.shape)
print(Y_data.shape)
del data
print('data has been imported!')

在这里插入图片描述
最终成功的将数组转置了过来,此方法适合多种维度。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值