卷积神经网络的图像预处理
Images pre-processing for convolutional neural network
我有 *.png
个文件,我想在卷积神经网络的上下文中将图像转换为单热编码。
- 我的图片是
224x224
。我搜索了许多在线参考资料,但我不太清楚如何将图像转换为 one-hot 编码。我是逐行追加还是逐列追加?一种方法比另一种更好吗?
- 一旦我创建了 one-hot 编码向量,就会应用归一化操作,例如将向量的每个值除以
256
(RGB 的最大值)。这样可以防止数字爆炸并导致溢出。但是,我还看到从该值中减去 0.5
。为什么是这样?这有效地将值的范围置于 [-0.5, 0.5]
之间。然而,在大多数卷积网络中,应用了一个 ReLU
层,无论如何都会将所有这些值变为零或更大。所以,我对为什么这样做感到困惑。
- 最后,一旦我将图像转换为单热编码向量,我应该在哪里添加偏置项?我是将它添加到 one-hot 编码向量的前面还是后面,这个值到底应该是什么?给定向量的归一化,我通常会看到偏置项是添加到向量前面的
1
。但是,为什么我们选择1
,为什么它通常附加在前面?
- 我想,我在 stats stackexchange 上回答了你的部分问题 :) 我猜你混淆了,因为你正在考虑将图像转换为 onehot 编码表示。这不是它的工作原理。一个热编码只是关于标签,你不需要转换图像(来自我上面的评论)
- 同样,当您对单热(稍微阅读一下)感到困惑时,您不会处理一个热编码标签。您处理图像(在本例中为预处理)。规范化可以有多种类型。对于深度学习,通常的方法是进行归一化,使均值为 0,标准差为 1。我没有尝试使用 (-0.5, 0.5) 进行归一化,而是在 ReLU 上回答你的问题。 ReLU 是为了引入非线性。如果您阅读更多有关深度学习(尤其是反向传播)的内容会更好。
- 又来了!你混淆了深度学习。偏置项是在训练过程中加入的。它是过程的一部分。由于您在问这个问题,因此您需要阅读神经网络。
这个简单的教程播放列表对我理解深度学习帮助很大,希望对你也有帮助!看看Neural network tutorial
祝你学习顺利:)
我有 *.png
个文件,我想在卷积神经网络的上下文中将图像转换为单热编码。
- 我的图片是
224x224
。我搜索了许多在线参考资料,但我不太清楚如何将图像转换为 one-hot 编码。我是逐行追加还是逐列追加?一种方法比另一种更好吗? - 一旦我创建了 one-hot 编码向量,就会应用归一化操作,例如将向量的每个值除以
256
(RGB 的最大值)。这样可以防止数字爆炸并导致溢出。但是,我还看到从该值中减去0.5
。为什么是这样?这有效地将值的范围置于[-0.5, 0.5]
之间。然而,在大多数卷积网络中,应用了一个ReLU
层,无论如何都会将所有这些值变为零或更大。所以,我对为什么这样做感到困惑。 - 最后,一旦我将图像转换为单热编码向量,我应该在哪里添加偏置项?我是将它添加到 one-hot 编码向量的前面还是后面,这个值到底应该是什么?给定向量的归一化,我通常会看到偏置项是添加到向量前面的
1
。但是,为什么我们选择1
,为什么它通常附加在前面?
- 我想,我在 stats stackexchange 上回答了你的部分问题 :) 我猜你混淆了,因为你正在考虑将图像转换为 onehot 编码表示。这不是它的工作原理。一个热编码只是关于标签,你不需要转换图像(来自我上面的评论)
- 同样,当您对单热(稍微阅读一下)感到困惑时,您不会处理一个热编码标签。您处理图像(在本例中为预处理)。规范化可以有多种类型。对于深度学习,通常的方法是进行归一化,使均值为 0,标准差为 1。我没有尝试使用 (-0.5, 0.5) 进行归一化,而是在 ReLU 上回答你的问题。 ReLU 是为了引入非线性。如果您阅读更多有关深度学习(尤其是反向传播)的内容会更好。
- 又来了!你混淆了深度学习。偏置项是在训练过程中加入的。它是过程的一部分。由于您在问这个问题,因此您需要阅读神经网络。
这个简单的教程播放列表对我理解深度学习帮助很大,希望对你也有帮助!看看Neural network tutorial
祝你学习顺利:)