У меня есть трехмерная сверточная нейронная сеть на Python с TFLearn.
Пример кода ниже:
def model_3d(self):
"""
This function will build our 3D Convolutional Neural Network
"""
#Layers
net = tflearn.input_data(shape=[None, 40, 80, 80, 3], name='InputLayer')
net = tflearn.layers.conv.conv_3d(net, 32, filter_size=(3, 3, 3), activation='relu', name='Conv3D1')
net = tflearn.max_pool_3d(net, kernel_size=(1, 2, 2), strides=(1, 2, 2), name='MaxPool3D1')
net = tflearn.layers.conv.conv_3d(net, 32, filter_size=(3, 3, 3), activation='relu', name='Conv3D2')
net = tflearn.max_pool_3d(net, kernel_size=(2, 2, 2), strides=(2, 2, 2), name='MaxPool3D2')
net = tflearn.layers.conv.conv_3d(net, 64, filter_size=(3, 3, 3), activation='relu', name='Conv3D3')
net = tflearn.max_pool_3d(net, kernel_size=(2, 2, 2), strides=(2, 2, 2), name='MaxPool3D3')
net = tflearn.layers.conv.conv_3d(net, 128, filter_size=(2, 2, 2), activation='relu', name='Conv3D5')
net = tflearn.max_pool_3d(net, kernel_size=(2, 2, 2), strides=(2, 2, 2), name='MaxPool3D4')
#FC Layers
net = tflearn.fully_connected(net, 1024, activation='relu', name='FC1')
net = tflearn.dropout(net, 0.5)
net = tflearn.fully_connected(net, self.n_classes, activation='softmax', name='FC3')
net = tflearn.regression(net, optimizer='adam', loss='categorical_crossentropy', learning_rate=1e-5)
return [net]
Я буду использовать эту модель для изучения и классификации видео. Для этого я написал алгоритм, который извлекает 40 кадров на видео и создает папку с подпапками, представляющими каждый класс, в основном новый набор данных.
Моя точка зрения такова. Каков наилучший способ загрузить эти кадры в эту модель?
Должен ли я использовать мини-пакетный метод с 40 примерами (кадрами) или в случае 3D CNN, входной слой берет 40 изображений за раз из набора данных и извлекает из него уроки?
Мне нужно знать, как эта модель может учиться на основе набора из 40 кадров, как только в каждой подпапке класса будет 40 изображений на видео, поэтому, чтобы уточнить, если у меня есть 50 видео в классе, у меня есть 50 * 40 кадров в эта папка.
Я много искал, чтобы решить эту конкретную проблему, но пока ничего.
Спасибо за поддержку и внимание!