这段时间学习了paddle关于CV方向的一些技巧,首先paddle1.7更新成了动态图,使用起来和Pytorch的感觉很像了,基本可以马上迁移过来。然后是相关配套的文档,真的非常详细,看着demo配合文档基本没啥问题了。
比较nice的感觉是,体验了paddlehub,可以快速加载预训练模型,跟PytorchHub的效果一样。还有paddle一看就是工程实践出来的框架,还配备了部署和模型压缩,体验非常的好!
目前各大公司纷纷开源自己的深度学习框架,而百度是我国最早开始推广和开源的,积累了很多经验,所以可以看到未来paddle的使用人数会越来越多。
零.语法相关
# 1.把字符串"stage1/train/1.jpg"前面的stage1去掉
str = str.lstrip('stage1').lstrip('/') # lstrip把字符串左边的空格或者字符删除
# 2.numpy相关
# 初始化全零np矩阵: a = np.zeros(b.shape, dtype=np.float32)
# np矩阵中不为零的个数: cnt = np.count_nonzero(a)
# np矩阵中不为零的数的下标: b = np.nonzero(a)
# 多维矩阵降成一维: a.ravel(), a.flatten() # 第一返回视图,第二个返回拷贝
# 3.zip用法:zip把可迭代对象的对应元素打包成一个个元组,返回这些元组组成的对象
# 可以节约内存,用list转换输出元组,*用法解压
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b)
list(zipped) # list() 转换为列表,[(1, 4), (2, 5), (3, 6)]
a1, a2 = zip(*zip(a,b)) # 相当于解压
# 4. enumerate(),将可遍历对象组合为索引序列
for idx, data enumerate(array):
# print(idx, data[i])
# 5.展示指定目录下所有的文件和文件夹
folders = os.listdir(path)
# 6.打开文件并以追加的形式添加
with open('./train_data.list', 'a') as f_train:
# 'a'打开文件进行追加,如果已经存在,则指针放于末尾,没有就创建新文件
# 'r'只读方式打开
# 'w'写入方式打开&