将FER数据集使用Pickle处理-Python代码

2024-03-24 01:08

本文主要是介绍将FER数据集使用Pickle处理-Python代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前写过一篇文章,是将FER2013数据集还原成灰度图像的Python代码,便于我们查看。

现在我想把它转换成pickle进行存储,这样便于读取和传输。

直接上代码就好了:

    def process_to_pickle(self):"""将csv文件加工成pickle文件,方便存储和读取:return: None"""# 创建文件夹if not os.path.exists(self.pickle_data_path): os.makedirs(self.pickle_data_path)# 读取csv数据with open(self.data_source) as f:train_x_data = []train_y_data = []test_x_data = []test_y_data = []validate_x_data = []validate_y_data = []# 打开文件夹data_csv = csv.reader(f)for (label, pixcels, usage) in data_csv:if usage == 'Training':temp_list = []for pixel in pixcels.split():temp_list.append(pixel)I = np.asarray(temp_list)train_x_data.append(I.tolist())train_y_data.append(label)elif usage == 'PrivateTest':temp_list = []for pixel in pixcels.split():temp_list.append(pixel)I = np.asarray(temp_list)test_x_data.append(I.tolist())test_y_data.append(label)elif usage == 'PublicTest':temp_list = []for pixel in pixcels.split():temp_list.append(pixel)I = np.asarray(temp_list)validate_x_data.append(I.tolist())validate_y_data.append(label)# 定义三个pickle文件train_pickle_file = open(os.path.join(self.pickle_data_path, 'train.txt'), 'wb')test_pickle_file = open(os.path.join(self.pickle_data_path, 'test.txt'), 'wb')validate_pickle_file = open(os.path.join(self.pickle_data_path, 'validate.txt'), 'wb')# 写入Picklepickle.dump(train_x_data, train_pickle_file)pickle.dump(train_y_data, train_pickle_file)pickle.dump(test_x_data, test_pickle_file)pickle.dump(test_y_data, test_pickle_file)pickle.dump(validate_x_data, validate_pickle_file)pickle.dump(validate_y_data, validate_pickle_file)# 关闭文件train_pickle_file.close()test_pickle_file.close()validate_pickle_file.close()logging.info(msg='Save data finish!')

这段代码可以直接放到我的之前的文章:点这里 。里面写了一个类,直接放到里面就能够使用。

如果代码里有错误,欢迎大家指正!!

 

这篇关于将FER数据集使用Pickle处理-Python代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840076

相关文章

Java中的ConcurrentBitSet使用小结

《Java中的ConcurrentBitSet使用小结》本文主要介绍了Java中的ConcurrentBitSet使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、核心澄清:Java标准库无内置ConcurrentBitSet二、推荐方案:Eclipse

Go语言结构体标签(Tag)的使用小结

《Go语言结构体标签(Tag)的使用小结》结构体标签Tag是Go语言中附加在结构体字段后的元数据字符串,用于提供额外的属性信息,这些信息可以通过反射在运行时读取和解析,下面就来详细的介绍一下Tag的使... 目录什么是结构体标签?基本语法常见的标签用途1.jsON 序列化/反序列化(最常用)2.数据库操作(

Java中ScopeValue的使用小结

《Java中ScopeValue的使用小结》Java21引入的ScopedValue是一种作用域内共享不可变数据的预览API,本文就来详细介绍一下Java中ScopeValue的使用小结,感兴趣的可以... 目录一、Java ScopedValue(作用域值)详解1. 定义与背景2. 核心特性3. 使用方法

spring中Interceptor的使用小结

《spring中Interceptor的使用小结》SpringInterceptor是SpringMVC提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑,通过实现HandlerIntercept... 目录一、Interceptor 的核心概念二、Interceptor 的创建与配置三、拦截器的执行顺

基于Python编写一个git自动上传的脚本(打包成exe)

《基于Python编写一个git自动上传的脚本(打包成exe)》这篇文章主要为大家详细介绍了如何基于Python编写一个git自动上传的脚本并打包成exe,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录前言效果如下源码实现利用pyinstaller打包成exe利用ResourceHacker修改e

Python在二进制文件中进行数据搜索的实战指南

《Python在二进制文件中进行数据搜索的实战指南》在二进制文件中搜索特定数据是编程中常见的任务,尤其在日志分析、程序调试和二进制数据处理中尤为重要,下面我们就来看看如何使用Python实现这一功能吧... 目录简介1. 二进制文件搜索概述2. python二进制模式文件读取(rb)2.1 二进制模式与文本

Python中Tkinter GUI编程详细教程

《Python中TkinterGUI编程详细教程》Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文... 目录前言1. Tkinter 简介2. 第一个 Tkinter 程序3. 窗口和基础组件3.1 创建窗

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

Django调用外部Python程序的完整项目实战

《Django调用外部Python程序的完整项目实战》Django是一个强大的PythonWeb框架,它的设计理念简洁优雅,:本文主要介绍Django调用外部Python程序的完整项目实战,文中通... 目录一、为什么 Django 需要调用外部 python 程序二、三种常见的调用方式方式 1:直接 im

Python字符串处理方法超全攻略

《Python字符串处理方法超全攻略》字符串可以看作多个字符的按照先后顺序组合,相当于就是序列结构,意味着可以对它进行遍历、切片,:本文主要介绍Python字符串处理方法的相关资料,文中通过代码介... 目录一、基础知识:字符串的“不可变”特性与创建方式二、常用操作:80%场景的“万能工具箱”三、格式化方法