Video 输入数据-使用TFLearn识别视频中的人类行为

Video 输入数据-使用TFLearn识别视频中的人类行为,video,tensorflow,dataset,hdf5,tflearn,Video,Tensorflow,Dataset,Hdf5,Tflearn,这是我在这里的第一个问题,我开始与Tflearn合作,我遇到了一个问题。我有一个.AVI格式的视频数据集,我首先将它们分成几个.PNG照片(视频的每一帧),然后我在想如何在TFLearn中使用它们。查看站点的文档我找到了一种方法,我想知道这是否是最合适的,另一个疑问是,X和Y基本上是什么 我选择了HDF5图像数据集输入模式,这是我的txt文件 /home/messias/TensorFlow/Dataset/Weizmann/abaixado/daria_bend/daria_bend_001.

这是我在这里的第一个问题,我开始与Tflearn合作,我遇到了一个问题。我有一个.AVI格式的视频数据集,我首先将它们分成几个.PNG照片(视频的每一帧),然后我在想如何在TFLearn中使用它们。查看站点的文档我找到了一种方法,我想知道这是否是最合适的,另一个疑问是,X和Y基本上是什么

我选择了HDF5图像数据集输入模式,这是我的txt文件

/home/messias/TensorFlow/Dataset/Weizmann/abaixado/daria_bend/daria_bend_001.png 1
/home/messias/TensorFlow/Dataset/Weizmann/abaixado/daria_bend/daria_bend_002.png 1
/home/messias/TensorFlow/Dataset/Weizmann/abaixado/daria_bend/daria_bend_003.png 1
/home/messias/TensorFlow/Dataset/Weizmann/abaixado/daria_bend/daria_bend_004.png 1
/home/messias/TensorFlow/Dataset/Weizmann/abaixado/daria_bend/daria_bend_005.png 1
只是其中的一部分作为例子

这是我的代码:

import numpy as np
import tflearn
import h5py
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_3d, max_pool_3d
from tflearn.data_utils import build_hdf5_image_dataset
from tflearn.layers.estimator import regression

#Carregar o txt do dataset
dataset_file_train = 'Training.txt'
dataset_file_test = 'Test.txt'

#Cria um dataset HDF5
build_hdf5_image_dataset(dataset_file_train, image_shape=(180, 144), mode='file', output_path='dataset_train.h5', categorical_labels=True, normalize=True)
build_hdf5_image_dataset(dataset_file_test, image_shape=(180, 144), mode='file', output_path='dataset_test.h5', categorical_labels=True, normalize=True)

# Load HDF5 dataset
h5f_train = h5py.File('dataset_train.h5', 'r')
X = h5f_train['X']
Y = h5f_train['Y']
h5f_test = h5py.File('dataset_test.h5', 'r')
testX = h5f_test['X']
testY = h5f_test['Y']
# Criando a rede neural convolucional 3D
network = input_data(shape=[None, 10, 180, 144, 3])
network = conv_3d(network, 32, 3, activation='relu')
network = max_pool_3d(network, 2)
network = conv_3d(network, 32, 3, activation='relu')
network = max_pool_3d(network, 2)
network = dropout(network, 0.5)
network = fully_connected(network, 2, activation='softmax')
network = regression(network, optimizer='adam', loss='categorical_crossentropy', learning_rate=0.001)

# Treinamento
model = tflearn.DNN(network, tensorboard_verbose=0)
model.fit(X, Y, n_epoch=1, validation_set=(testX, testY), snapshot_step=100, show_metric=True, run_id='Primeira_CNN')
我想知道,用这个可以比较帧范围吗?我还尝试实现一个3D卷积神经网络,但目前我只得到了这个错误:

ValueError: Cannot feed value of shape (64, 144, 180, 3) for Tensor u'InputData/X:0', which has shape '(?, 10, 180, 144, 3)'
这是我的密码:

import numpy as np
import tflearn
import h5py
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_3d, max_pool_3d
from tflearn.data_utils import build_hdf5_image_dataset
from tflearn.layers.estimator import regression

#Carregar o txt do dataset
dataset_file_train = 'Training.txt'
dataset_file_test = 'Test.txt'

#Cria um dataset HDF5
build_hdf5_image_dataset(dataset_file_train, image_shape=(180, 144), mode='file', output_path='dataset_train.h5', categorical_labels=True, normalize=True)
build_hdf5_image_dataset(dataset_file_test, image_shape=(180, 144), mode='file', output_path='dataset_test.h5', categorical_labels=True, normalize=True)

# Load HDF5 dataset
h5f_train = h5py.File('dataset_train.h5', 'r')
X = h5f_train['X']
Y = h5f_train['Y']
h5f_test = h5py.File('dataset_test.h5', 'r')
testX = h5f_test['X']
testY = h5f_test['Y']
# Criando a rede neural convolucional 3D
network = input_data(shape=[None, 10, 180, 144, 3])
network = conv_3d(network, 32, 3, activation='relu')
network = max_pool_3d(network, 2)
network = conv_3d(network, 32, 3, activation='relu')
network = max_pool_3d(network, 2)
network = dropout(network, 0.5)
network = fully_connected(network, 2, activation='softmax')
network = regression(network, optimizer='adam', loss='categorical_crossentropy', learning_rate=0.001)

# Treinamento
model = tflearn.DNN(network, tensorboard_verbose=0)
model.fit(X, Y, n_epoch=1, validation_set=(testX, testY), snapshot_step=100, show_metric=True, run_id='Primeira_CNN')
我已经尝试了几种类型为“重塑”的解决方案,但没有任何效果,这让我怀疑我的数据输入方法是否正确。如果有人能评论所有的架构,我将不胜感激

对不起,我的英语不好,我是由谷歌翻译公司翻译的