我正在使用双流网络进行人类活动识别。对于时间流(光流作为输入),我从头开始训练我的模型,这需要大量资源和时间。我决定通过在 Keras 应用程序中使用预训练模型来使用迁移学习,但 keras 应用程序中的每个模型都使用 3 通道输入形状,其中光流是 1 通道图像。 谁能指导我如何使用预训练模型来拟合使用光流图像作为输入的时间流模型?
答案 0 :(得分:0)
你不能改变预训练模型的架构,因为它是从同一个架构中学习的。但是,您可以将 1 通道数据转换为 3 通道数据,然后将其提供给网络。有很多方法可以做到。
例如,一种方法是将灰度图像转换为 RGB,使用 tf.image.grayscale_to_rgb()
:
data_1channel = tf.constant([[[1.0], [2.0], [3.0]]])
print(data_1channel.shape) #(1,3,1)
data_3channel = tf.image.grayscale_to_rgb(data_1channel)
print(data_3channel.shape) #(1,3,3)
或者您可以使用 tf.concat()
将图像作为图层重复 3 次:
data_1channel = tf.constant([[[1.0], [2.0], [3.0]]])
print(data_1channel.shape) #(1,3,1)
data_3channel = tf.concat([data_1channel,data_1channel,data_1channel],axis=2)
print(data_3channel.shape) #(1,3,3)