CNN图像识别与张量流上的回归输出



我想使用CNN根据图像预测估计的等待时间。所以我会想象这将使用 CNN 使用 RMSE 的损失函数输出回归类型输出,这就是我现在正在使用的,但它无法正常工作。

有人可以指出使用 CNN 图像识别输出标量/回归输出(而不是类输出(的示例,类似于等待时间,以便我可以使用他们的技术来使其工作,因为我无法找到合适的示例。

我找到的所有CNN示例都是针对MSINT数据并区分输出类输出的猫和狗,而不是等待时间的数字/标量输出。

有人可以给我一个例子,使用 CNN 的张量流给出基于图像识别的标量或回归输出。

非常感谢!老实说,我超级卡住,没有任何进展,并且已经花了两个多星期来处理同样的问题。

查看 Udacity 自动驾驶汽车模型,这些模型从行车记录仪获取输入图像并预测转向角(即连续标量(以保持在道路上......通常在CNN层顶部的一个或多个完全连接的层之后使用回归输出。

https://github.com/udacity/self-driving-car/tree/master/steering-models/community-models

下面是一个典型的模型:

https://github.com/udacity/self-driving-car/tree/master/steering-models/community-models/autumn

。它使用tf.atan()或者您可以使用tf.tanh()或仅线性来获得最终输出y

将 MSE 用于损失函数。

这是keras中的另一个例子...

model = models.Sequential()
model.add(convolutional.Convolution2D(16, 3, 3, input_shape=(32, 128, 3), activation='relu'))
model.add(pooling.MaxPooling2D(pool_size=(2, 2)))
model.add(convolutional.Convolution2D(32, 3, 3, activation='relu'))
model.add(pooling.MaxPooling2D(pool_size=(2, 2)))
model.add(convolutional.Convolution2D(64, 3, 3, activation='relu'))
model.add(pooling.MaxPooling2D(pool_size=(2, 2)))
model.add(core.Flatten())
model.add(core.Dense(500, activation='relu'))
model.add(core.Dropout(.5))
model.add(core.Dense(100, activation='relu'))
model.add(core.Dropout(.25))
model.add(core.Dense(20, activation='relu'))
model.add(core.Dense(1))
model.compile(optimizer=optimizers.Adam(lr=1e-04), loss='mean_squared_error')

它们与 MNIST 示例的主要区别在于,不是将 N-dim 的对数向量汇集到 softmax 带交叉熵损失,对于您的回归输出,您可以将其降低到 1 暗矢量,带 MSE 损失。(您还可以在最后一层中混合使用多个分类和回归输出...就像在 YOLO 对象检测中一样(

关键是在最后一个全连接(输出(层中没有激活功能。请注意,您必须事先至少拥有 1 个 FC 层。

相关内容

  • 没有找到相关文章

最新更新