"Image" (神经网络编码器)

NetEncoder["Image"]

表示一个编码器,将二维图像转换成像素值的三阶张量.

NetEncoder[{"Image",size}]

表示一个编码器,重新调整输入图像为 size.

NetEncoder[{"Image",{width,height}}]

表示一个编码器,重新调整输入图像为指定的维度.

NetEncoder[{"Image",size,"param"val,}]

表示一个带有预处理指定参数的编码器.

更多信息

  • NetEncoder[][input] 把编码器应用于一个输入,并产生一个输出.
  • NetEncoder[][{input1,input2,}] 把编码器应用于一个输入列表,并产生一个输出列表.
  • 编码器的输入可以是 Image[] 对象或一个 File[] 表达式.
  • NetEncoder["Image"] 等同于 NetEncoder[{"Image",{128,128}}].
  • 在构建网络时,可通过指定 "port"->NetEncoder[] 将编码器附加到网络的输入端口上.
  • 参数
  • 支持下列参数:
  • ColorSpace"RGB"用于编码的色彩空间
    "DataTransposed"False宽度是否为第一维度
    InterleavingFalse通道是否交织
    "MeanImage"None相减的均值图像
    "VarianceImage"None归一化的方差图像
    Method"Stretch"怎样使尺寸一致
    ResamplingAutomatic重新采样的方法
    AlignmentCenter怎样对齐 Method"Fit""Fill" 情况下的图像
    PaddingBlackMethod"Fit" 的填充方案
  • Method 的可能的值为:
  • "Stretch"通过重新采样拉伸图像以使图像一致
    "Fit"适配整个图像;保持长宽比;必要时进行填充
    "Fill"适配较小的尺寸;必要时对另一尺寸进行剪切
  • Interleaving"DataTransposed" 选项将以下列方式影响输出的形状:
  • 以下设置可以用于 "MeanImage""VarianceImage"
  • None不减任何东西
    m从每个像素相减的值
    {m1,m2,}从不同通道相减的值
    Image[]相减的整体图像
  • 在相减前,像素被归一化介于 0 和 1 之间.

范例

打开所有单元关闭所有单元

基本范例  (1)

创建一个有指定大小的图像编码器:

编码一幅图像:

将已编码的值可视化一幅图像:

范围  (1)

NetEncoder["Image"] 可编码为 FileImage 对象. 创建一个图像编码器:

把编码器应用到一个 File 对象:

把编码器应用到一个 Image 对象:

把编码器应用到图像列表:

参数  (12)

ColorSpace  (1)

设置输出图像的 ColorSpace "Grayscale"

输出只有一个通道,适用于灰度图:

"DataTransposed"  (2)

"DataTransposed"False 时,输出的高为第一维度:

"DataTransposed"True 时,输出的宽为第一维度:

"DataTransposed"TrueInterleavingTrue 时,图像可以缩放到固定高和不同宽:

Interleaving  (2)

InterleavingFalse,输出的通道维度是维度列表的第一维:

InterleavingTrue,输出的通道维度是维度列表的最后一维:

InterleavingTrue 时,图像可以缩放到固定宽和不同高:

"MeanImage"  (1)

创建一个图像编码器,从编码图像中减去均值列表:

创建一幅图像,每个像素值是 0.8:

把编码器应用于图像:

这个等价于:

"VarianceImage"  (1)

创建一个图像编码器,通过方差列表正则化编码的图像:

创建一幅图像,每个像素值是 0.8:

把编码器应用于图像:

这等价于:

Method  (2)

通过适配整个图像并在必要时填充来创建符合尺寸的图像编码器:

对图像进行编码:

将已编码的值可视化一幅图像:

通过适配较小的尺寸并在必要时进行裁剪来创建符合尺寸的图像编码器:

对图像进行编码:

将已编码的值可视化一幅图像:

Resampling  (1)

通过使用分段线性插值进行缩放来创建符合尺寸的图像编码器:

对图像进行编码:

将已编码的值可视化一幅图像:

Padding  (1)

通过适配整个图像并在必要时使用灰色进行填充来创建符合尺寸的图像编码器:

对图像进行编码:

将已编码的值可视化一幅图像:

Alignment  (1)

通过适配整个图像并在必要时在右侧或底部进行填充来创建符合尺寸的图像编码器:

对图像进行编码:

将已编码的值可视化一幅图像:

属性和关系  (2)

当把图像编码器应用于 File 对象列表,NetEncoder 会尝试在多核处理器上并行计算. 创建 64 幅图像列表:

创建图像编码器:

显示可用处理器数:

在图像上 Map 编码器:

利用并行性,把编码器直接应用于 File 对象列表,而不是使用 Map

如果未完全指定网络,NetTrain 将自动尝试连接编码器. 自动连接图像编码器: