数据块API

数据块APIγ

数据块API允许您自定义数据束通过将流程的底层部分隔离在单独的块中,主要是:

  1. 输入在哪里以及如何创建它们?
  2. 如何将数据拆分为培训和验证集?
  3. 如何标记输入?
  4. 要应用什么转换?
  5. 如何添加测试集?
  6. 如何包装数据加载器并创建数据束是吗?

这些地址中的每一个都可能是为您的独特设置而设计的具有特定块的地址。您的输入可能在一个文件夹中,CSV文件,或数据文件。你可能想把它们随机分开,根据某些索引或它们所在的文件夹。您可以将标签放在csv文件或数据框中,但它可能来自文件夹或输入的特定功能。您可以选择是否添加数据扩充。测试集也是可选的。最后,您必须设置参数以将数据放在一起数据束(批次大小,排序函数…)

之所以调用数据块API,是因为您可以将这些块中的每个块与其他块混合并匹配,允许完全灵活地创建您的自定义数据束为了训练,验证和测试。各种工厂方法数据束对初学者来说是很好的,但是你不能总是让你的数据符合他们的要求。

混合搭配

像往常一样,我们将从端到端的示例开始,然后切换到每个部分的详细信息。

使用示例γ

让我们从传统的mnist例子开始。

路径 = 非数据()网址.我很小
TFMS = GETH变换()多极翻转=
路径.LS()
[posixpath('/home/ubuntu/.fastai/data/mnist_tiny/labels.csv'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/export.pkl'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/test'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/train'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/history.csv'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/models'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/cleaned.csv'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/valid')]
()路径/“火车”.LS()
[posixpath('/home/ubuntu/.fastai/data/mnist_tiny/train/3'),posixpath('/home/ubuntu/.fastai/data/mnist_tiny/train/7')]

视觉数据,我们创造了一个简单的数据束适合通过简单的打字分类:

数据 = 影像摄影.FROX文件夹()路径 DSTFFMS=TFMS 大小=二十四

这是针对imagenet样式后面的文件夹中的数据,与火车有效的目录,每个类包含一个子目录,所有的照片都在那里。还有一个测试包含未标记图片的目录。使用数据块API,我们可以像这样把所有的事情分组在一起:

数据 = ()图像项列表.FROX文件夹()路径 在哪里找到数据?->在路径及其子文件夹中
        .拆分文件夹()              如何在列车中分离/有效?->使用文件夹
        .标记文件夹中的\u()            如何标注?->取决于文件名的文件夹
        .AddiTestType文件夹()              可选择添加测试集(此处默认名称为test)
        .转型()TFMS 大小=六十四       数据扩充?->使用尺寸为64的TFMS
        .数据束(第页)                   最后呢?->使用默认值转换为ImageDataBunch
数据.显示批次() 图幅=() 隐匿轴=

让我们来看另一个例子视觉数据用行星数据集。这次,这是一个多分类问题,在csv文件中有标签,并且没有在有效数据和列车数据之间给出分割,所以我们使用随机分割。出厂方法为:

行星 = 非数据()网址.小星球
行星 = GETH变换()飞檐= 马克斯照明=零点一 最大变焦=一点零五 马克斯经纱=0。
数据 = 影像摄影.弗洛斯CSV()行星 文件夹=“火车” 大小=一百二十八 后缀=“JPG” 唇形花序 = '' DSTFFMS=行星

使用数据块API,我们可以这样重写:

数据 = ()图像项列表.弗洛斯CSV()行星 “标签,CSV” 文件夹=“火车” 后缀=“JPG”
        在哪里找到数据?->在行星“火车”文件夹中
        .按百分比随机分割()
        如何在列车中分离/有效?->随机,默认20%有效
        .黄花菜()唇形花序=''
        如何标注?->使用csv文件
        .转型()行星 大小=一百二十八
        数据扩充?->使用128尺寸的TFMS
        .数据束(第页)                          
        最后->使用默认值转换为数据束
数据.显示批次()= 图幅=()9

数据块API还允许您在没有直接解决方法的问题中收集数据。影像摄影工厂方法。对于分割任务,例如,我们可以用它快速得到数据束.让我们以CAMVID数据集.图像位于“图像”文件夹中,其相应的遮罩位于“标签”文件夹中。

坎维德 = 非数据()网址.微型摄像机
PATIOL LBL = 坎维德/“标签”
路径 = 坎维德/'图像'

我们有一个文件,给出了类的名称(遮罩内的每个代码对应的是:一个行人,一棵树,一条路……)

代码 = NP公司.加载程序()坎维德/代码 数据类型=战略研究 代码
数组([“animal”,“拱门”骑自行车的人,“桥”“建筑”,“汽车”‘Cartluggagepram’,“孩子”“柱杆”“围栏”,“兰米克斯德里夫”“兰姆克格斯诺德里夫”,'其他文本',“摩托车停车场”,“其他移动”“停车挡”,“行人”“路”“路肩”,“人行道”,“符号符号”“天空”“SUVpickuptruck”,“交通锥”“交通灯”“火车”“树”“TrutkuBube”“隧道”“植物杂项”,“空虚”,“墙”dType=
              

              

我们定义了下面的函数,它从图像文件名中推断出遮罩文件名。

获取 = lambda X以下内容: PATIOL LBL/f_x.杆_磷脂酶P{X.后缀}

然后我们可以很容易地定义数据束使用数据块API。这里我们需要使用TFMYY=真在转换调用中,因为我们需要对目标掩码应用与对图像应用相同的转换。

数据 = ()分段项目列表.FROX文件夹()路径
        .按百分比随机分割()
        .花椒()获取 =代码
        .转型()GETH变换() TFMY= 大小=一百二十八
        .数据束(第页)
数据.显示批次()= 图幅=()5个

另一个对象检测的例子。我们使用的是椰子数据集在这里。库中有一个助手函数,它读取注释文件并返回图像名称列表以及与其关联的标记bbox列表。我们把它转换成一个字典,用它的bbox映射图像名,然后编写函数,为每个图像文件名提供目标。

椰子 = 非数据()网址.小可可
图像 LBLY-Box = GET-注释()椰子/“火车,JSON”
IMG2Box = 双关语()拉链()图像 LBLY-Box
盖特耶夫诺克 = lambda O型以下内容:IMG2Box[O型.名称]

下面的代码与我们以前看到的非常相似。唯一的新添加是使用一个特殊的函数来批量整理样本。这是因为我们的图像可能有多个边界框,所以我们需要将它们填充到最大数量的边界框中。

数据 = ()对象列表.FROX文件夹()椰子
        图像在哪里?->在COCO中
        .按百分比随机分割()                          
        如何在列车中分离/有效?->随机,默认20%有效
        .花椒()盖特耶夫诺克
        如何找到标签?->使用get-y-func
        .转型()GETH变换() TFMY=
        数据扩充?->Tfm_y=真的标准变换
        .数据束()BS=十六 逐份打印=bb_pad_校对   
        最后,我们转换为数据束,并使用bb_pad_collate
数据.显示批次()= DSY型=数据类型.有效的 图幅=()

但Vision并不是数据块API工作的唯一应用程序。它还可以用于文本和表格数据。使用IMDB数据集的示例(在csv文件中标记文本),下面是如何为语言模型收集数据。

IMDB = 非数据()网址.IMDB-U样本
DATAYLM = ()文本列表.弗洛斯CSV()IMDB 文本“CSV” 科尔斯='文本'
           输入在哪里?此csv的“文本”列
                   .按百分比随机分割()
           如何分割?随机默认20%
                   .拉贝尔福福尔姆()
           为语言模型贴上标签
                   .数据束(第页)
DATAYLM.显示批次()
IDX 文本
奇奇与张仲勋的《下一部奇杰电影》(1980)是第二部由奇奇与张仲勋主演的电影。可爱的燃烧室现在是室友了。他们住在一栋20公里的大楼里,想办法多吸点烟,整天躺在那里。manbetx官网手机登录XXMaj但是XXMaj Cheech
这一集,以一个被流放到二十一世纪冰河时代的女人的感人表演,伊恩·XXMAJ XXUNK是XXUNK XXMAJ图书管理员。《XXMaj》有点让人想起经典剧集《XXMaj City XXMaj on XXMaj》永远是《XXMaj的边缘》,这个时间旅行的故事是本系列的一个丰富而引人注目的结局,哪一个?
以及以前的电影,但是它用一个现代的赎罪故事来驱散旧的和旧的。有的地方感觉有点慢,尤其是如果你已经习惯了像大多数现代观众那样的电影里的枪战,但是有时候,言语比行动更能表达
认为军队很酷。然后,他在可怕的战争现实中获得了一个速成课程。伯尼和克里斯蒂娜之间不太可能的友谊和联系,每个人都不知道自己是战争的不同方面的士兵,是非常真实的演出,而不去与浪漫戏剧的东西。XXMaj同样适用于
忘了应该有个阴谋。\n \n xxmaj也许是电影中最荒谬的场景之一。当几个恶棍在特工车上安装爆炸装置时。因为某种原因,尽管这个装置被明确地称为“远程XXUNK”,但坏人还是决定追捕她。

对于分类问题,我们只需要改变贴标签的方式。这里我们使用csv列标签.

数据等级 = ()文本列表.弗洛斯CSV()IMDB 文本“CSV” 科尔斯='文本'
                   .裂殖虫()科尔='是否有效'
                   .黄花菜()科尔斯=“标签”
                   .数据束(第页)
数据等级.显示批次()
文本 目标
XXBOS XXMAJ RAISH XXMAJ VICTOR XXMAJ VARGAS:A XXMAJ REVIEW \n\n XXMAJ You know,举着维克多·瓦加斯的双手就像一个大块头,一碗一碗的。太暖和了,但你不确定感觉是否正确。尽我所能,无论怎样温暖和粘乎乎的XXMaj养育XXMaj Victor XXMaj 消极的
XXBOS XXUP在XXUP附近的XXUP商店XXUP在XXUP角落是有史以来最让人感觉良好的浪漫喜剧之一。将军,这是不可能的,很难用言语表达对这部电影的感受。这不是那些太卖力的电影之一,也没想到 积极的
xxbos-xxmaj既然xxmaj-che(2008)已经完成了其相对较短的xxmaj澳大利亚电影放映(xxmaj-xxunk中极有限的xxunk屏幕,XXX之后)我可以加入《XXMaj at XXMaj the XXMaj Movies》的《XXMaj at XXMaj the XXMaj Movies》中的“XXMaj”,带领XXMaj Steven XXMaj Soderbergh完成任务。\n \n xxmaj看电影导演改变风格/主题通常是令人满意的, 消极的
这部电影在我看前几个星期一直放在我的床上。我拍了一部自我放纵的关于关系变坏的电影。manbetx官网手机登录我错了;这是一个XXUNK XXUNK进入XXMAJ新XXMAJ XXUNK混乱的XXUNK。\n\n XXMAJ格式与XXMAJ MAX XXMAJ XXUNK'“XXMAJ LA XXMAJ XXUNK相同,“ 积极的
xxbos xxmaj许多人忽略了这不仅仅是一个经典,因为它是第一个xxup三维游戏,甚至是第一次。它也是21世纪第一届奥运会之一,一款真正幽闭恐怖游戏,一般来说只是一个相当不错的游戏体验。XXMAJ带图形 积极的

最后,对于表格数据,我们只需要将分类变量和连续变量的名称作为一个额外的参数传递。我们还加了一些预处理器这将应用到我们的数据一旦分割和标签完成。

成人 = 非数据()网址.成人样本
测向 = 局部放电.雷丁CSV()成人/'成人.csv'
德瓦尔瓦 = “薪水”
猫叫 = ['工人阶级' “教育” '婚姻状况' “占领” '关系' “种族” “性” '本地国家']
联系人姓名 = [“教育” '每周小时' “时代” '资本损失' “FNLWGT” “资本利得”]
普罗斯 = [填充缺失 归类 标准化]
数据 = ()列表表.弗洛伊德DF()测向 路径=成人 猫叫=猫叫 联系人姓名=联系人姓名 普罗斯=普罗斯
                           .按\idx拆分()有效性IDX=范围()八百一千
                           .黄花菜()科尔斯=德瓦尔瓦
                           .数据束(第页)
数据.显示批次()
工人阶级 教育 婚姻状况 职业 关系 比赛 本国 教育-num_na 教育数量 每周工作时间 年龄 资本损失 FNLWGT 资本收益 目标
私人的 哈佛大学毕业生 未婚 工艺修理 未婚 亚洲太平洋岛民 男性 越南 -0.4224 -0.0356 -0.6294 -0.2164 0.7476个 -0.1459 <50K
私人的 第九 已婚公民配偶 农业捕鱼 妻子 白色 女性 美国 -1.9868 零点一二六四 -0.5561 -0.2164 一点九八四七 -0.1459 <50K
私人的 一些大学 已婚公民配偶 运输移动 丈夫 白色 男性 美国 -0.0312 -0.0356 零点三九六八 -0.2164 零点一九七三 -0.1459 <50K
自我EMP非公司 单身汉 已婚公民配偶 专业教授 丈夫 白色 男性 美国 1.1422年 -0.0356 一点七八九四 -0.2164 -0.6119 -0.1459 > 50K
是吗? 哈佛大学毕业生 未婚 是吗? 自己孩子 其他 女性 美国 -0.4224 -0.0356 -1.5090 -0.2164 一点八零一八 -0.1459 <50K

步骤1:提供输入γ

要获得输入的基本类如下。它也是包含所有标签的同一类(因此名称线性对象表

线性对象表[来源]

线性对象表()项目以下内容:迭代器[TY-CO路径以下内容:病理路径=''拉贝尔科尔以下内容:可赎回的=没有Xtra公司以下内容:任何=没有处理器以下内容:预处理器=没有X以下内容:线性对象表=没有点火器空载以下内容:布尔=

项目集合_uuLen_uuu第二章具有恩达雷索引语义。

此类在中重新组合模型的输入项目拯救一个路径属性,它将在其中查找任何文件(图像文件,带标签的csv文件…)。创建程序应用于项目以获得最终输出。拉贝尔科尔将调用以根据label函数的结果创建标签,Xtra公司包含附加信息(通常是基础数据帧)和处理器将应用于拆分和标记后的输入。

根据您处理的数据类型,它有多个子类。下面是一个快速列表:

一旦你选择了适合的课程,可以使用以下工厂方法之一对其进行实例化

FROX文件夹[来源]

FROX文件夹()路径以下内容:病理路径扩展以下内容:斯特朗=没有递归=包括以下内容:选项列表=没有**关键字参数线性对象表

创建一个线性对象表在里面路径在中具有后缀的文件名中扩展.递归确定是否搜索子文件夹。

弗洛伊德DF[来源]

弗洛伊德DF()测向以下内容:数据文件路径以下内容:病理路径=''科尔斯以下内容:内部结构=**关键字参数线性对象表

创建一个线性对象表在里面路径从中的输入科尔斯属于测向.

弗洛斯CSV[来源]

弗洛斯CSV()路径以下内容:病理路径CSVI名字以下内容:战略研究科尔斯以下内容:内部结构=标题以下内容:战略研究=“推断”**关键字参数线性对象表

创建一个线性对象表在里面路径从中的输入科尔斯属于路径/CSVI名称打开与标题.

可选步骤:筛选数据γ

工厂方法可能获取了太多的项目。例如,如果使用FROX文件夹方法,你可能得到了你不想要的文件。为了移除这些,您可以使用以下方法之一。

滤过器[来源]

滤过器()芬克以下内容:可赎回的线性对象表

只保留其元素芬克收益率.

按文件夹筛选[来源]

按文件夹筛选()包括=没有排除=没有

只保留文件名包括文件夹或拒绝排除.

滤器[来源]

滤器()以下内容:浮动种子以下内容:利息=没有

保留随机样本项目有概率的还有一个可选的种子.

托文[来源]

托文()财务以下内容:战略研究

保存自项目财务在里面自路径.

使用部分数据[来源]

使用部分数据()桑普雷以下内容:浮动=种子以下内容:利息=没有线性对象表

仅使用以下示例桑普雷完整的数据集和可选的种子.

写你自己的线性对象表γ

首先检查您是否无法通过以下方式轻松自定义现有子类之一:

  • 将现有的子类化并替换得到方法(或打开方法(如果处理图像)
  • 应用自定义处理器(参见步骤4)
  • 更改默认值拉贝尔科尔用于创建标签
  • 添加默认值预处理器γ处理器类变量

如果不是这样的话,你真的需要写自己的课,有一个完整教程这就解释了如何进行。

分析PRED[来源]

分析PRED()普雷德以下内容:张量

呼吁普雷德之前重建用于其他预处理。

得到[来源]

得到()任何

如果要自定义如何创建项,则子类自项目.

新的[来源]

新的()项目以下内容:迭代器[TY-CO处理器以下内容:预处理器=没有**关键字参数线性对象表

创建新的线性对象表项目,保持相同的属性。

你永远不需要把这个子类化,只是别忘了添加到自我复制每次需要复制的参数的名称新的被调用爱因斯坦.

重建[来源]

重建()T以下内容:张量X以下内容:张量=没有

重新研究其数据的基础项之一T.

步骤2:在培训和验证集之间拆分数据γ

这一步通常很简单,您只需根据需要选择以下函数的OE即可。

诺亚分裂[来源]

诺亚分裂()

不要拆分数据并创建空的验证集。

按百分比随机分割[来源]

按百分比随机分割()有效百分比以下内容:浮动=零点二种子以下内容:利息=没有项目列表

通过放置有效百分比在验证集中,可选择的种子可以通过。

分裂文件[来源]

分裂文件()验证名以下内容:线性对象表项目列表

使用中的名称拆分数据验证名用于验证。

按文件拆分[来源]

按文件拆分()文件名以下内容:病理路径路径以下内容:病理路径=没有项目列表

使用中的名称拆分数据文件名用于验证集。路径将超越自路径.

拆分文件夹[来源]

拆分文件夹()火车以下内容:战略研究=“火车”有效的以下内容:战略研究=“有效”项目列表

根据文件夹(火车有效的)文件名在其中。

按\idx拆分[来源]

按\idx拆分()有效性IDX以下内容:收藏[利息])→项目列表

根据中的索引拆分数据有效性IDX.

按“idx”拆分[来源]

按“idx”拆分()列车标识有效性IDX

将数据拆分为列车标识有效性IDX.

拆分列表[来源]

拆分列表()火车有效的

将数据拆分为火车有效的.

用有效的函数分割[来源]

用有效的函数分割()芬克以下内容:可赎回的项目列表

按结果拆分数据芬克(回报)用于验证集)。

裂殖虫[来源]

裂殖虫()科尔以下内容:内部结构=

将数据从科尔在数据帧中自检程序.

步骤3:标记输入γ

要标记您的输入,使用以下功能之一。注意,即使它不在文档中,你总是可以通过拉贝尔科尔将用于创建这些标签(默认值为输入的标签线性对象表,如果没有,它将去分类表多类别列表浮标表取决于标签的类型)。这在以下功能中实现:

获取标签[来源]

获取标签()标签拉贝尔科尔以下内容:可赎回的=没有唇形花序以下内容:战略研究=没有**关键字参数

返回拉贝尔科尔或者从标签.

这些文档中的第一个示例创建了如下标签:

路径 = 非数据()网址.我很小
陆上通信线 = 图像项列表.FROX文件夹()路径.拆分文件夹().标记文件夹中的\u().火车

如果要保存重新创建标签学家(不包括保存实际的图像/文本/etc文件)你可以使用去东方托斯CSV以下内容:

陆上通信线.火车.托斯CSV()“TMP CSV”

或者只是拿一个数据文件直接:

陆上通信线.去东方().()
X Y
列车/3/9932.png
列车/3/7189.png
列车/3/8498.png
列车/3/8888.png
列车/3/9004.png

标签空[来源]

标签空()

在每个项目上标记空标签.

标签列表[来源]

标签列表()标签以下内容:迭代器[TY-CO**关键字参数标签学家

标签自项目具有标签.

黄花菜[来源]

黄花菜()科尔斯以下内容:内部结构=**关键字参数

标签自项目从中的值科尔斯在里面自检程序.

标记常数[来源]

标记常数()康斯特以下内容:任何=**关键字参数标签学家

在每个项目上贴上标签康斯特.

标记文件夹中的\u[来源]

标记文件夹中的\u()**关键字参数标签学家

根据每个文件名的文件夹为其提供一个标签。

花椒[来源]

花椒()芬克以下内容:可赎回的**关键字参数标签学家

应用芬克以获取其标签。

标签来自[来源]

标签来自()拍打以下内容:战略研究满路径以下内容:布尔=**关键字参数标签学家

应用RE拍打确定每个文件名的标签。如果满路径,以全名搜索。

分类表[来源]

分类表()项目以下内容:迭代器[TY-CO以下内容:收藏[TY-CO]=没有唇形花序以下内容:战略研究=没有**关键字参数):类别列表基

基本的线性对象表对于单个分类标签。

线性对象表适合存放标签项目属于.如果没有通过了,将由独特的不同标签决定。处理器将默认为类别处理器.

多类别列表[来源]

多类别列表()项目以下内容:迭代器[TY-CO以下内容:收藏[TY-CO]=没有唇形花序以下内容:战略研究=没有一热以下内容:布尔=**关键字参数):类别列表基

基本的线性对象表用于多分类标签。

它将标签列表存储在项目属于.如果没有通过了,将由独特的不同标签决定。九月用于拆分项目在标签列表中。

如果一个热=真,这些项包含一个热编码的标签。在这种情况下,必须通过(因为我们不能使用不同的标签)。

浮标表[来源]

浮标表()项目以下内容:迭代器[TY-CO日志以下内容:布尔=**关键字参数):线性对象表

线性对象表适用于将浮动存储在回归项中。将添加一个日志如果THIF标志是.

排字员[来源]

排字员()项目以下内容:迭代器[TY-CO路径以下内容:病理路径=''拉贝尔科尔以下内容:可赎回的=没有Xtra公司以下内容:任何=没有处理器以下内容:预处理器=没有X以下内容:线性对象表=没有点火器空载以下内容:布尔=):线性对象表

基本的线性对象表用于虚拟标签。

不可见步骤:预处理γ

在API中没有看到,但是如果你通过了处理器(或一份名单)在你的首字母线性对象表在步骤1中,将在此处应用。如果你没有通过任何处理器,它们的列表可能仍然会被创建,这取决于γ处理器项目类的变量(这可以是预处理器类)。

处理器是在初始化时应用于所有输入的转换,在训练集上计算状态,然后在不修改验证集(可能还有测试集)的情况下应用该状态。例如,它可以处理文本来标记化,然后将它们数字化。在这种情况下,我们希望使用与培训集完全相同的词汇对验证集进行数字化。

另一个例子是表格数据,在这里,我们用(例如)根据训练集计算的中位数填充缺少的值。该统计数据存储在预处理器并应用于验证集。

这是所有处理器的通用类。

预处理器[来源]

预处理器()DS系统以下内容:收藏[TY-CO]=没有

将应用于数据块API末尾的项的处理器的基本类。

过程一[来源]

过程一()项目以下内容:任何

过程一项目.这个方法需要写在任何子类中。

过程[来源]

过程()DS系统以下内容:收藏[TY-CO])

处理数据集。此默认应用过程一在每个项目属于DS系统.

类别处理器[来源]

类别处理器()DS系统以下内容:线性对象表):预处理器

预处理器创造DSS项目处理映射。

生成\类[来源]

生成\类()项目

从生成类项目通过获取排序后的唯一值。

多类别处理器[来源]

多类别处理器()DS系统以下内容:线性对象表一热以下内容:布尔=):类别处理器

预处理器创造DSS项目处理映射。

生成\类[来源]

生成\类()项目

从生成类项目通过获取排序后的唯一值。

可选步骤γ

添加变换γ

转换与处理器的区别在于,当我们获取一个项目时,它们会被动态应用。在随机转换的情况下,每次我们请求相同的项时,它们也可能发生更改。

转型[来源]

转型()TFMS以下内容:可选的[元组[联合[可赎回的收藏[可赎回的]联合[可赎回的收藏[可赎回的] ](无,无)**关键字参数

集合TFMS用于列车和验证装置的XS。

这是视觉应用程序的主要功能。这个关键字参数是您传递的转换类型所期望的类型。TFMY在其中,如果设置为,转换将应用于输入和目标。

添加测试集γ

要添加测试集,您可以使用以下两种方法之一。

加法检验[来源]

加法检验()项目以下内容:迭代器[TY-CO标签以下内容:任何=没有

添加包含项目任意标签.

AddiTestType文件夹[来源]

AddiTestType文件夹()测试文件夹以下内容:战略研究=“测试”标签以下内容:任何=没有

添加包含来自的项的测试集测试文件夹和一个武断的标签.

重要!如果可用,将不收集标签。相反,不管是通过标签参数或第一个标签来自训练车将用于此数据集的所有条目。

法斯塔伊框架测试数据集没有标签-这是要预测的未知数据。

如果你想用测试带有标签的数据集,您可能需要将其用作验证集,如:

data_test=(imageitemlist.from_folder(path).split_by_folder(train='train',valid='test').label_from_folder()…)

另一种方法,如果您使用普通验证集,训练结束后,您只想验证带有标签的测试集作为验证集,您可以这样做:

tfms=[]path=path('data').resolve()data=(imageitemlist.from_folder(path).split_by_pct().label_from_folder().transform(tfms).databunch().normalize())learn=create_cnn(data,型号.resnet50,metrics=accuracy)learn.fitou one_cycle(5,1e-2)现在将验证数据集条目替换为测试数据集作为新的验证数据集:所有内容都完全相同,除了用“split”替换“split”之外,用“folder”替换“split”(或者您已经使用了后者,所以只需切换到valid='test')数据_test=(imageitemlist.from_folder(path).split_by_folder(train='train',valid='test').label_from_folder().transform(tfms).databunch().normalize())learn.data=data_test learn.validate())

当然,你的数据块可能完全不同,这只是一个例子。

第4步:转换为数据束γ

最后一步通常非常简单。你只需要包含我们传递给你的所有参数数据束.create()BS数字工作者逐份打印)调用以创建数据束设置在一束如果需要修改训练集的输入属性。通常情况下,我们在为您处理之前显示的各种子类。

数据束[来源]

数据束()路径以下内容:病理路径=没有**关键字参数影像摄影

创建一个数据束从自我,路径将超越自路径关键字参数传递给数据束.create.

内部类γ

标签学家[来源]

标签学家()X以下内容:线性对象表Y以下内容:线性对象表TFMS以下内容:联合[可赎回的收藏[可赎回的]]=没有TFMY以下内容:布尔=**关键字参数):数据集

输入列表X和标签Y带可选TFMS.

可选应用TFMSY如果TFMY.

出口[来源]

出口()财务以下内容:病理路径**关键字参数

导出最小状态并将其保存到财务加载空版本进行推理。

转换[来源]

转换()TFMS以下内容:联合[可赎回的收藏[可赎回的]]=没有**关键字参数

集合TFMS仅适用于目标。

盖特态[来源]

盖特态()**关键字参数

返回导出的最小状态。

加载空[来源]

加载空()路径以下内容:病理路径财务以下内容:病理路径

装入卫星财务创建空的标签学家用于推理。

加载状态[来源]

加载状态()路径以下内容:病理路径状态以下内容:双关语标签学家

创建一个标签学家状态.

过程[来源]

过程()XP以下内容:预处理器=没有YP以下内容:预处理器=没有名称以下内容:战略研究=没有

启动处理X的自我自.Y具有XPYP.

设置项目[来源]

设置项目()项目

为了推断,将用只包含项目.

去东方[来源]

去东方()

创造数据文件包含项目X的自我自.Y.

托斯CSV[来源]

托斯CSV()以下内容:战略研究

保存TooDf()到csv文件自路径/.

转型[来源]

转型()TFMS以下内容:联合[可赎回的收藏[可赎回的]TFMY以下内容:布尔=没有**关键字参数

设置TFMSTFMY要应用于输入和目标的值。

项目列表[来源]

项目列表()路径以下内容:病理路径火车以下内容:线性对象表有效的以下内容:线性对象表测试以下内容:线性对象表=没有

线性对象表对于每一个火车有效的(可选的测试

从\列表中标记\u[来源]

从\列表中标记\u()培训标签以下内容:迭代器[TY-CO验证标记以下内容:迭代器[TY-CO拉贝尔科尔以下内容:可赎回的=没有**关键字参数标签学家

在中使用标签培训标签验证标记标记数据。拉贝尔科尔将覆盖默认值。

转型[来源]

转型()TFMS以下内容:可选的[元组[联合[可赎回的收藏[可赎回的]联合[可赎回的收藏[可赎回的] ](无,无)**关键字参数

集合TFMS用于列车和验证装置的XS。

转换[来源]

转换()TFMS以下内容:可选的[元组[联合[可赎回的收藏[可赎回的]联合[可赎回的收藏[可赎回的] ](无,无)**关键字参数

集合TFMS用于列车和验证装置的系统。

标签列表[来源]

标签列表()路径以下内容:病理路径火车以下内容:线性对象表有效的以下内容:线性对象表测试以下内容:线性对象表=没有):项目列表

标签学家对于每一个火车有效的(可选的测试

获取处理器[来源]

获取处理器()

如果没有设置,则读取默认类处理器。

加载空[来源]

加载空()路径以下内容:病理路径财务以下内容:病理路径=“出口”PKL

创建一个标签列表中的序列化文件中包含空集路径/FN.

加载状态[来源]

加载状态()路径以下内容:病理路径状态以下内容:双关语

创建一个标签列表从序列化的状态.

过程[来源]

过程()

处理内部数据集。

帮助程序函数γ

GETX文件[来源]

GETX文件()路径以下内容:病理路径扩展以下内容:斯特朗=没有递归以下内容:布尔=包括以下内容:选项列表=没有文件列表

返回中的文件列表路径在中有后缀的扩展;任选地递归.