PIL | PIL.Image.crop()
深度学习 | 深度学习pytorch训练代码模板
RNN | LSTM输入输出格式
Computer Vision | 虚假名人照片生成
虚假名人照片生成
1. 虚假照片生成有什么用?
生成一些“并不存在的人”的照片
给定一系列真人照片,通过GAN技术生成一些类似的照片。但这些照片上的人并不真实存在。
这些照片可以用作一些影视作品中的“遗像”,这样,既保证了影视作品的真实性,又不需要使用真人照片。
2.数据集情况
CelebA(名人照片数据集)
网址:http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html
· 人脸照片,拥有超过200K张名人照片
· 照片中人的姿态不一,背景杂乱
模型介绍
DCGAN generator
Computer Vision | 基于ResNet的CIFAER10图像分类
基于ResNet的CIFAER-10图像分类
CIFAR-10数据集
数据集规模
60000张32×32的彩色图片,共有十个类别,每个类别6000张图片。共50000张训练集图片和10000测试集图片。
数据集样本类别
飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车(汽车和卡车无重叠)—> 10分类任务
数据集网址
http://www.cs.toronto.edu/~kriz/cifar.html
网络
ResNet18
Computer Vision | DogsVSCats
Dogs VS Cats
猫狗大战任务
猫狗大战是来源于Kaggle的一个比赛项目,任务为给定一个有猫狗照片数据集,设计一种算法对测试集中的猫狗图片进行分类。
比赛项目网址:
https://www.kaggle.com/
网络
layer1: Conv2d(3, 16, 3, padding=1)
layer2: relu():
layer3: max_pool2d(2)
layer4: Conv2d(16, 16, 3, padding=1)
layer5: relu()
layer6: max_pool2d(2)
layer7: Linear(50*50*16, 128)
layer8: relu()
layer9: Linear(128, 64)
layer10: relu()
layer11: Linear(64, 2)
脑电伪迹降噪方法整理
深度学习 | 模型存储的5种方法
模型存储的5种方法
方法1:csv/txt
存储为csv、text或者json是最为简单的存储格式,阅读和解析起来非常方便。
如果使用Pandas则可以在存储的过程中设置压缩方法,对磁盘比较友好。
· 场景:通用
· 数据:表格、文本
· 文件大小:压缩后较少
· 读取速度:较慢
compression_opts = dict(method='zip',
archive_name='out.csv')
df.to_csv('out.zip', index=False,
compression=compression_opts)
方法2:hdf
HDF(Hierarchical Data File)是能满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式。
HDF格式支持分层存储,可以将多个变量同时存在一个HDF文件中,同时在读取速度上也比较快。
· 场景:通用
· 数据:表格、文本
· 文件大小:较大
· 读取速度:较快
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]},
index=['a', 'b', 'c'])
df.to_hdf('data.h5', key='df', mode='w')
方法3:npy
如果将特征和数据处理为Numpy格式,则可以考虑存储为Numpy中的npy或npz格式。
· 场景:文件存储
· 数据:矩阵
· 文件大小:适中
· 读取速度:较快
- npy文件:二进制格式
np.load()和np.save()是读写磁盘数组数据的两个重要函数。使用时数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中。
import numpy as np
arr=np.arange(5)
np.save('test',arr)
print(np.load('test.npy'))
2.npz文件:压缩文件
使用np.savez()函数可以将多个数组保存到同一个文件中。读取.npz文件时使用np.load()函数,返回的是一个类似于字典的对象,因此可以通过数组名作为关键字对多个数组进行访问。
import numpy as np
a = np.arange(5)
b = np.arange(6)
c = np.arange(7)
np.savez('test', a, b, c_array=c) # c_array是数组c的命名
data = np.load('test.npz')
print('arr_0 : ', data['arr_0'])
print('arr_1 : ', data['arr_1'])
print('c_array : ', data['c_array'])
方法4:memmap
NumPy实现了一个类似于ndarray的memmap对象,它允许将大文件分成小段进行读写,而不是一次性将整个数组读入内存。
如果需要存储的对象大于内存,则可以选择memmap进行存储。
· 场景:大文件存储
· 数据:矩阵
· 文件大小:较大、特别大
· 读取速度:适中
newfp = np.memmap(filename, dtype='float32', mode='r', shape=(3,4))
fpc[0,:] = 0
方法5:joblib
类似于pkl存储,joblib.dump可以将任意的Python对象持久化到一个文件中,并使用joblib.load进行读取。
· 场景:任意
· 数据:任意
· 文件大小:适中
· 读取速度:适中
from joblib import load, dump
X = [[0, 0], [1, 1]]
Y = [1, 0]
dump((X, Y), "data.pkl")
X, Y = load("data.pkl")