Dar*_*lyn 8 python artificial-intelligence neural-network conv-neural-network keras
我有一个输入图像416x416.如何创建4 x 10的输出,其中4是列数,10是行数?
我的标签数据是包含4列10行的2D数组.
我知道该reshape()方法,但它要求结果形状具有与输入相同数量的元素.
使用416 x 416输入大小和最大池层,我可以获得最大13 x 13输出.
有没有办法在4x10不丢失数据的情况下实现输出?
我的输入标签数据类似于
[[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[116 16 128 51]
[132 16 149 52]
[ 68 31 77 88]
[ 79 34 96 92]
[126 37 147 112]
[100 41 126 116]]
Run Code Online (Sandbox Code Playgroud)
这表示我想要检测的图像上有6个对象,第一个值是xmin,第二个ymin,第三个xmax,第四个ymax.
我的网络的最后一层看起来像
(None, 13, 13, 1024)
Run Code Online (Sandbox Code Playgroud)
首先将(None, 13, 13, 1024)图层展平
model.add(Flatten())
Run Code Online (Sandbox Code Playgroud)
它会给 13*13*1024=173056
一维张量
然后加一层密密麻麻的
model.add(Dense(4*10)) 它将输出到 40
这会将您的 3D 形状转换为 1D
然后只需根据您的需要调整大小
model.add(Reshape(4,10))
这会起作用,但绝对会破坏数据的空间性质
我相信使您的预测形状与所需输出保持一致的最简单方法是@Darlyn 提出的解决方案。假设您到目前为止所拥有的网络被声明为(输出形状为张量(13, 13, 1024)):
x = Input(shape=(416, 416, 3))
y = Conv2D(32, activation='relu')(x)
...
y = Conv2D(1024, activation='relu')(y)
Run Code Online (Sandbox Code Playgroud)
您只需要添加一个回归层来尝试预测框,然后将它们重塑为(10, 4):
from keras.layers import Flatten, Dense, Reshape
samples = 1
boxes = 10
y = Flatten(name='flatten')(model.outputs)
y = Dense(boxes * 4, activation='relu')(y)
y = Reshape((boxes, 4), name='predictions')(y)
model = Model(inputs=model.inputs, outputs=y)
x_train = np.random.randn(samples, 416, 416, 3)
p = model.predict(x_train)
print(p.shape)
Run Code Online (Sandbox Code Playgroud)
(1、10、4)
这是可行的,但我并不完全确定直接回归这些值会产生良好的结果。我通常看到对象检测模型使用注意力、区域或显着性来确定对象的位置。您可以尝试以下几种对象检测 keras 实现:
classes = ["dog", "cat", "hooman"]
backbone = keras_rcnn.models.backbone.VGG16
model = keras_rcnn.models.RCNN((416, 416, 3), classes, backbone)
boxes, predictions = model.predict(x)
Run Code Online (Sandbox Code Playgroud)
from keras_retinanet.models.resnet import resnet_retinanet
x = Input(shape=(416, 416, 3))
model = resnet_retinanet(len(classes), inputs=x)
_, _, boxes, _ = model.predict_on_batch(inputs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13860 次 |
| 最近记录: |