【发布时间】:2021-04-08 22:01:57
【问题描述】:
我希望将 RNN 与 CNN 一起实现,以便基于两张图像而不是单独使用 CNN 进行预测。 我正在尝试修改 alexnet 模型代码:
def alexnet(width, height, lr, output=3):
network = input_data(shape=[None, width, height, 1], name='input')
network = conv_2d(network, 96, 11, strides=4, activation='relu')
network = max_pool_2d(network, 3, strides=2)
network = local_response_normalization(network)
network = conv_2d(network, 256, 5, activation='relu')
network = max_pool_2d(network, 3, strides=2)
network = local_response_normalization(network)
network = conv_2d(network, 384, 3, activation='relu')
network = conv_2d(network, 384, 3, activation='relu')
network = conv_2d(network, 256, 3, activation='relu')
network = max_pool_2d(network, 3, strides=2)
network = local_response_normalization(network)
network = fully_connected(network, 4096, activation='tanh')
network = dropout(network, 0.5)
network = fully_connected(network, 4096, activation='tanh')
network = dropout(network, 0.5)
network = fully_connected(network, output, activation='softmax')
network = regression(network, optimizer='momentum',
loss='categorical_crossentropy',
learning_rate=lr, name='targets')
model = tflearn.DNN(network, checkpoint_path='model_alexnet',
max_checkpoints=1, tensorboard_verbose=0, tensorboard_dir='log')
return model
我将图像放在一个 np 数组中,其中每个元素都是一个图像的像素数据。我无法通过 RNN 实现使用两个图像的功能。
我已经看到了 tflearn 的 reshape 和 lstm 方法,我认为它们应该放在最终的全连接层之前,但不确定如何指定要使用的图像数量。
另外,使用 Keras 会更容易实现吗?
【问题讨论】:
-
你到底想用rnn分析什么?什么是“时间步长”——通过 cnn 获得的图像的编码还是什么?
-
@IvanK。我在 np 数组中有一系列游戏图像。使用 RNN,我想分析 X 帧之间的运动。我只是使用 CNN 来提取图像的特征。
标签: python tensorflow keras neural-network tflearn