模块,包   在package_runoob同级目录下,用test.py调用package_runoob包中内容

参考链接:

Python 模块 | 菜鸟教程 (runoob.com)

Dataset  抽象类,所有创建的数据集都需要进行子类化,并重写__len__和__getitem__

from torch.utils.data import Dataset

class BasicDataset(Dataset):

参考链接:

torch.utils.data - PyTorch中文文档 (pytorch-cn.readthedocs.io)

https://www.bilibili.com/video/BV1hE411t7RN?share_source=copy_web

assert()  宏,断言,程序在假设条件下,能够正常良好的运作

参考链接:

https://www.runoob.com/w3cnote/c-assert.html


splitext()  用于分离文件名与扩展名

import os

os.path.splitext(path)

e.g.

参考链接:

Python分离文件名与扩展名-Python splitext函数-嗨客网 (haicoder.net)

logging.info()  类似print()的功能

参考链接:

python中logging模块上篇 - 知乎 (zhihu.com)

@staticmethod 用于修饰类中的方法,使其可以在不创建类实例的情况下调用方法
e.g.
class Time():

    @staticmethod
def sec_minutes(s1,s2):

可以直接用,调用

Time.sec_minutes()

也可以创建实例,调用

t=Time()

t.sec_minutes()

参考链接:

简述python中的@staticmethod作用及用法 - 云+社区 - 腾讯云 (tencent.com)

Image.NEAREST 使用最近邻插值法调整img为newsize
Image.BICUBIC 使用双三插值法调整img为newsize
Image.resize()  单张图片大小变换
pil_img = pil_img.resize((newW, newH), resample=Image.NEAREST if is_mask else Image.BICUBIC)

np.asarray() 将结构数据转化为ndarray类型

 
ndim 返回数组维度ndim=len(img.shape)
import imghdr
import cv2
import numpy as np img=cv2.imread("./00021_mask.png")
img=np.asarray(img) print("img.ndim:",img.ndim)
print("img.shape",img.shape)
print("len(img.shape)",len(img.shape))

img.shape 输出数组的长、宽、通道数

np.transpose()  类似数组转置的操作,(0,1,2)对应(x,y,z)

arr.transpose((2,0,1))

相当于转成了(z, x, y)

numpy.load() 函数从具有npy扩展名(.npy)的磁盘文件返回输入数组

参考链接:

Python numpy.load()用法及代码示例 - 纯净天空 (vimsky.com)

Image.fromarray() array到image的转换

参考链接:

(17条消息) Image.fromarray的用法(实现array到image的转换)_weixin_39450145的博客-CSDN博客_image.fromarray

glob.golb() 查找符合特定规则的文件路径名

super()._init_() 自动继承父类属性

btw 整理Dataset--BasicDataset--CarvanaDataset关系

from torch.utils.data import Dataset

class BasicDataset(Dataset):
def __init__(self, images_dir: str, masks_dir: str, scale: float = 1.0, mask_suffix: str = ''):
def __len__(self):
def __getitem__(self, idx): class CarvanaDataset(BasicDataset):
def __init__(self, images_dir, masks_dir, scale=1):
super().__init__(images_dir, masks_dir, scale, mask_suffix='_mask')

Dataset 是torch中的一个抽象类,用于获取每一个数据及其label

BasicDataset是一个继承了Dataset的子类,需要重写__len__和__getitem__,这里的__init__是一种普通的继承关系,所以BasicDataset中一些属性需要自己定义、自己赋值

CarvanaDataset是一个继承了BasicDataset的子类,super().__init__自动继承父类属性,不需要对父类中定义过的属性再做定义了,可以用于对含_mask的后缀(suffix)实例化。

Pytorch-UNet-master>utils>data_loading.py的更多相关文章

  1. xxx/labelKeypoint/utils/qt.py:81: RuntimeWarning: invalid value encountered in double_scalars

    原代码: return np.linalg.norm(np.cross(p2 - p1, p1 - p3)) / np.linalg.norm(p2 - p1) 出现报错: xxx/labelKeyp ...

  2. pytorch的torch.utils.data.DataLoader认识

    PyTorch中数据读取的一个重要接口是torch.utils.data.DataLoader,该接口定义在dataloader.py脚本中,只要是用PyTorch来训练模型基本都会用到该接口, 该接 ...

  3. 深度学习(PYTORCH)-3.sphereface-pytorch.lfw_eval.py详解

    pytorch版本sphereface的原作者地址:https://github.com/clcarwin/sphereface_pytorch 由于接触深度学习不久,所以花了较长时间来阅读源码,以下 ...

  4. 【pytorch】torch.utils.data.DataLoader

    简介 DataLoader是PyTorch中的一种数据类型.用于训练/验证/测试时的数据按批读取. torch.utils.data.DataLoader(dataset, batch_size=1, ...

  5. week06 12 后端utils cloudAMQP_client.py 安装pika

    我们回到后端 pika是专门处理RabitAMQP的包 或者你可以直接一步到位 我们不能一直让我们的网络爬虫一直爬信息 一是网络消耗很大(cpu) 二是容易被网站发现被禁ip self.connect ...

  6. https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/connections.py

    # Python implementation of the MySQL client-server protocol # http://dev.mysql.com/doc/internals/en/ ...

  7. [PyTorch]PyTorch中模型的参数初始化的几种方法(转)

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本文目录 1. xavier初始化 2. kaiming初始化 3. 实际使用中看到的初始化 3.1 ResNeXt,de ...

  8. tensorflow之数据读取探究(1)

    Tensorflow中之前主要用的数据读取方式主要有: 建立placeholder,然后使用feed_dict将数据feed进placeholder进行使用.使用这种方法十分灵活,可以一下子将所有数据 ...

  9. TFRecord读写简介+Demo 基于Ubuntu18.04+Tensorflow1.12 无WARNING

    简介 TFRecord是TensorFlow官方推荐使用的数据格式化存储工具. 它规范了数据的读写方式. 只要生成一次TFRecord,之后的数据读取和加工处理的效率都会得到提高. 将图片转换成TFR ...

  10. PyTorch源码解读之torch.utils.data.DataLoader(转)

    原文链接 https://blog.csdn.net/u014380165/article/details/79058479 写得特别好!最近正好在学习pytorch,学习一下! PyTorch中数据 ...

随机推荐

  1. Ajax JavaScript传参-javascript加载本地文件

    get请求需要拼接到url里面 post请求,需要放到send方法里面,后端取值的时候,Ajax用JavaScript传输跟用postman传输,取值方式有些区别,这里做一下详细记录 传参格式{'id ...

  2. Position Based Dynamics【译】

    绝大部分机翻,少部分手动矫正,仅供参考.本人水平有限,如有误翻,概不负责... Position Based Dynamics Abstract The most popular approaches ...

  3. labwindows/cvi activex 控件无法正常使用问题解决

    在进行labwindows/cvi编程时,想使用时间控件,需要在界面上点击右键的activex选项中选择Microsoft Data and Time picker control6.0(SP4).如 ...

  4. 【2020NOI.AC省选模拟#9】C. 重复

    题目链接 原题解: 通过计数相同的子序列对个数的方式来计算答案. 设$f(i,j)$为$S$的前$i$和$j$个字符的公共子序列对个数. 当$S_i=S_j$时,$f(i,j)=f(i,j-1)+f( ...

  5. python菜鸟学习: 4.购物车演练

    # -*- coding: utf-8 -*-'''1.启动程序后让用户输入消费额,然后打印商品列表'2.允许用户根据商品编码购买商品3.用户选择商品后,检测余额是否够,够则直接扣款,不够就提醒4.可 ...

  6. 1.3 选择IDE

    选择IDE 使用过的IDE 1.DEV-C++ 配合使用语言:C.C++ 个人体验:支持代码补全,信息竞赛遗留物,招很多入门教材喜欢,十分古老缺乏维护,功能简洁,安装完打开直接编译很方便,代码提示让人 ...

  7. Sharp7与S7NetPlus 性能测试

    介绍 ​ Sharp7和都S7NetPlus是纯C#实现的基于以太网与S7系列的西门子PLC通讯的开源库.都支持.net core 跨平台可以部署在linxu, docker,windwos 中. 测 ...

  8. IDEA 启动SpringBoot项目或Spring项目出现程序包XXX不存在

    该方法是在你的pom中的依赖(是否缺少,版本是否兼容)maven仓库等配置没有问题的情况下 第一种方法: 打开IDEA底部的终端Terminal,输入"mvn idea:idea" ...

  9. Jupyter lab 切换kernel

    在使用pytorch的时候需要用到pandas这个包,报错说"no module named pandas", 但是我在终端查找了conda 装了pandas,所以不是安装的问题, ...

  10. layui相关问题总结

    1.layui table回显选中 1) radio: done:function(res, curr, count){ for(var i = 0; i < res.data.length; ...