‫现在我们已经看到了图像的样子, 密集的形式｡
‫让我们构建一个小函数来完成这里的步骤｡
‫所以我们要做的就是复制它们这样我们就可以在下面看到它们｡
‫我在这里写一个小单元格｡
‫现在, 我们已经看到了图像作为张量的样子｡
‫让我们创建一个函数来预处理它们｡
‫好吧, 我会的
‫我们可以在这里定义一个变量, 图像大小为224, 你可能会想知道｡
‫就像我每次看到这种无法解释的事情时一样｡
‫224是什么？
‫我从哪弄来的？
‫我们会在后面的视频中看到, 当我们挑选出一个我们可以使用的机器学习模型时｡
‫所以很多机器学习都是将输入的大小或形状与你正在使用的模型对齐, 在我们的例子中,
‫是将图像与模型对齐｡
‫同样, 我们将在稍后讨论这一点｡
‫但从本质上讲,
‫我们要确保我们输入机器学习模型的图像不是这个形状, 而是24高到24宽,
‫因为这是我们将要使用的机器学习模型, 它是在相同形状的图像上训练的,
‫请记住, 向机器学习模型输入数据的格式和形状必须与您在“We“我们试图做出预测｡
‫但我们稍后会在实践中看到这一点｡
‫但让我们纠正这个函数｡
‫因此创建一个预处理图像的函数｡
‫所以我把这个简单的过程称为图像｡
‫它将图像路径作为输入｡
‫还有｡
‫小文档字符串可以标记图像文件路径, 并将图像转换为张量｡
‫就这么简单｡
‫稍后我们可以让它更直观一点, 但开始, 这就足以为我们自己解释了｡
‫所以我们要读入一个图像文件, 并将其保存到一个名为image的变量中｡
‫如果我们现在读一下加载图像, 你也可以对其他类型的数据这样做, 对吗？
‫这里有文本数据｡
‫有熊猫, 数据框, 麻木, csv｡
‫但是, 通过阅读这里, 我们可以看到, 我们可以进入IO进行输入､ 输出､ 读取､ 文件｡
‫我们走吧｡
‫上面写着什么｡
‫读取并输出输入文件名的全部内容｡
‫这就说得通了｡
‫返回字符串类型的张量｡
‫真漂亮｡
‫让我们来做图像路径, 但不要相信我的话｡
‫我们要做的是, 我希望你们也采用这种做法｡
‫如果你看到一个函数, 你不能完全确定它是做什么的｡
‫逐行重写｡
‫让我们来看看这个｡
‫我们将使用张量等于t来读取, 读取, 文件, 然后我们需要一个图像路径｡
‫所以我们要做文件名｡
‫我26岁了, 所以我们会得到文件名的｡
‫26.
‫那是什么样子的？
‫哦, 我的天
‫所以它是一根弦的形状｡
‫然后是一大堆的字符, 我不懂, 但这是一件好事,
‫因为计算机比我更能理解他们｡
‫所以它所做的就是获取文件名并将内容转换为｡
‫这么长时间, 紧张｡
‫好极了｡
‫下一步, 使用TensorFlow读取文件｡
‫将其保存到图像｡
‫是的｡
‫把我们的图片jpeg转换成时态｡
‫好吧, 那就这么办吧｡
‫将JPEG图像转换为具有三个颜色通道的数值张量｡
‫红雨｡
‫蓝色的｡
‫同样, 查看加载图像文档｡
‫所以我们在这里重用这个变量｡
‫现在我们将它重置为b tf｡
‫图像点解码｡
‫看看我们有哪些选择｡
‫我们有PNG, 这是图像文件的类型｡
‫我们将使用JPEG, 因为我们的图像是JPEG图像, 然后我们将变量传递给它｡
‫渠道｡
‫Atta通道指示解码图像的颜色通道的期望数量｡
‫在我们的例子中, 我们需要三个, 四个, 红色, 绿色和蓝色｡
‫真漂亮｡
‫现在, 如果我们想看看它到底在做什么｡
‫让我们用张量来进行tf点图像解码｡
‫JPEG格式｡
‫我们先做张量然后再走｡
‫通道等于3｡
‫哦, 看那个｡
‫他们得到的数据和我们这里得到的完全一样｡
‫好极了｡
‫好吧, 我会的
‫现在, 为了保存时间, 我们将在这个函数中再写几行,
‫但我们不会经历类似的步骤｡
‫这就是我想要的｡
‫我想让你练习一下｡
‫如果你看到了一个函数, 并且你对它的作用很好奇｡
‫试着一行一行地写出来, 看看会发生什么｡
‫所以你要相信我这些线条的作用｡
‫因此转换颜色通道值｡
‫这就是标准化｡
‫我会先写代码, 然后告诉你从0到2, 从55到0再到1的值｡
‫所以我们要把image = TF转换成image, 把image转换成d, 类型, image, tf, float, 32｡
‫文件上怎么说的？
‫如果需要, 将图像转换为d类型并缩放其值｡
‫使用浮点值表示的图像的值应在0-1范围内｡
‫好极了｡
‫现在你可能会想, 怎么做？
‫你怎么知道的丹尼尔
‫你怎么知道你必须把它从0转换成55再转换成0和1之间的值呢？
‫事实上, 我撒谎了.
‫我说过我们不会去看那个, 但这是一个很好的调查｡
‫拉紧, 你们可以看到, 我们得到的值在0到255之间｡
‫我来查｡
‫哦, 不, 我不想在这里搞砸自己｡
‫重新运行此程序｡
‫所以我只想演示一下这是怎么做的｡
‫所以图像转换｡
‫所以基本上它所做的就是转换我们的值, 缩放它们, 而不是在0到255之间｡
‫它们现在在0和1之间, 具有相同的比例｡
‫32号浮标｡
‫哦, 我的天
‫32.第三十二章
‫好极了｡
‫所以我们得到了相同的形状｡
‫但现在不是0到2或55之间, 而是0到1之间｡
‫现在, 这种类型的过程使得在这些上的计算更加高效｡
‫这是你最需要知道的｡
‫这叫做正常化｡
‫同样, 这只是直接从加载图像文档｡
‫现在, 我们要做什么？
‫实际上, 我不认为我们有一个步骤在这里｡
‫我们可能需要将图像标准化, 将颜色通道值从0到255转换为0到1｡
‫五个吧｡
‫六个｡
‫好吧, 我会的
‫现在, 最后, 我们可以调整图像的大小｡
‫现在, 到现在我相信你信任我和这条线将做什么｡
‫所以我们不打算把它打出来｡
‫我会把这个留给24号｡
‫到24号｡
‫所以基本上是正方形的｡
‫-没错—没错
‫实际上是个正方形｡
‫调整图像大小｡
‫使用指定的方法将图像大小调整为所需大小｡
‫现在我们要调整图像的大小, 大小将是高度｡
‫等一下, 你在干什么？
‫现在你明白为什么我们在这里定义它了｡
‫也许如果我们把这个函数写得更好一点, 我们就可以把图像大小作为图像大小输入｡
‫这样可能会好些｡
‫好极了｡
‫现在, 当你开始编写自己的函数时, 你会得到这样的练习｡
‫你第一次写函数的时候, 你可能会很糟糕, 很糟糕｡
‫但是, 当您开始了解您的工作流是什么时, 您将开始了解如何编写更好的函数｡
‫现在我们可以返回图像｡
‫那么这做了什么呢？
‫它确实做到了我们刚才说的｡
‫它采用图像路径和图像大小｡
‫我们可以在这里定义它｡
‫它从路径名漂亮的读入图像文件｡
‫它将JPEG转换为数值张量｡
‫所以我们只是把它转换成一个张量, 有三个颜色通道红, 绿色, 蓝,
‫因为这是大多数深度学习图像模型的约定｡
‫他们要红色的｡
‫我说读｡
‫不是说这是件坏事｡
‫阅读是一件伟大的事情｡
‫然后, 我们将颜色通道从0到55转换为0到1的值, 最后将图像大小调整为所需的值｡
‫现在我们已经把它写进了一个函数中, 所以美妙的是我们可以在以后使用它｡
‫这是我以前做的, 对吧？
‫我以前每次想处理图像时都要运行这些代码行, 糟糕的工作流程, 所以我们可以实际删除这些代码｡
‫请记住, 如果您想查看函数实际执行的操作, 请将其逐行分解｡
‫它将图像路径作为输入, 然后查看其余部分的操作｡
‫我想这段视频到此为止了｡
‫我们已经创建了函数, 准备处理一些图像｡
‫我们现在要做的是, 再次阅读TensorFlow中的加载数据, 我认为是这个｡
‫是的, 从这里回去｡
‫这里有一小部分TensorFlow喜欢以批处理的形式查看内容｡
‫我们将在下一个视频中了解哪些批次｡