Python 我的CNN的输出层应该是什么样子?
我正在运行一个模型来检测图像中一些有趣的特征。我有一组600x200像素的图像。这些图像具有我想识别的岩石碎片等特征。假设一个(4x12)网格覆盖在图像上,我可以使用注释器工具手动生成注释,例如Python 我的CNN的输出层应该是什么样子?,python,machine-learning,neural-network,deep-learning,keras,Python,Machine Learning,Neural Network,Deep Learning,Keras,我正在运行一个模型来检测图像中一些有趣的特征。我有一组600x200像素的图像。这些图像具有我想识别的岩石碎片等特征。假设一个(4x12)网格覆盖在图像上,我可以使用注释器工具手动生成注释,例如((4,9)、(3,10)、(3,11)、(3,12)),以识别图像中感兴趣的单元格。我可以用Keras建立CNN模型,输入为灰度图像。但是我应该如何对输出进行编码呢。对我来说,一种直观的方法是将其视为形状的稀疏矩阵(12,4,1),只有感兴趣的单元格有1,而其他单元格有0 有没有更好的方法对输出进行编
((4,9)、(3,10)、(3,11)、(3,12))
,以识别图像中感兴趣的单元格。我可以用Keras建立CNN模型,输入为灰度图像。但是我应该如何对输出进行编码呢。对我来说,一种直观的方法是将其视为形状的稀疏矩阵(12,4,1)
,只有感兴趣的单元格有1,而其他单元格有0
- 有没有更好的方法对输出进行编码李>
- 最后一层的激活功能应该是什么?我正在为隐藏层使用ReLU
- 损失函数应该是什么?
有效吗均方误差
- 内存问题:您需要处理稀疏张量或使用生成器来处理内存问题
- 丢失和激活:Keras API目前不支持用于分段的丢失和激活,因此您需要自己实现它。您可以找到如何解决此问题的示例
sigmoid
和binary\u crossentropy
。在分类的情况下softmax
和category\u crossentropy
当然,还有其他方法可以解决这个问题。可以用回归的方法来解决,你需要预测有趣的像素点。但是在
Keras
中处理不同的输入是相当麻烦的。你为什么不把你的图像分割开来,用一个“更小的网络(4*12)”这些图像是从圆形钻孔中展平的。因此我对正弦模式感兴趣,以识别有趣的地质特征,而不是其他看起来相似但不是正弦的岩石特征。