Keras 如何将数据以正确的形状输入我的LSTM,以及如何为我的数据集创建标签?
我有暴力场景的视频数据集,我把每一个视频都转换成了7张图片。 我使用预训练vgg16从每幅图像中提取特征,因此我现在将数据集设置为图像数组 每个图像的大小都是7*7*512。 我只处理了我的数据集的10个视频,所以我有(10*7=70)图像的特征,所以我的特征阵列是成型的(70,7,7,512) 因此,我将我的数据重塑为如下概念(样本、时间步长、特征)我将我的样本视为我的视频,我的时间步长视为每个视频中的图像数,即7个图像,特征数为7*7*512=25088,因此我将输入重塑为(10,725088),这是我的代码:Keras 如何将数据以正确的形状输入我的LSTM,以及如何为我的数据集创建标签?,keras,Keras,我有暴力场景的视频数据集,我把每一个视频都转换成了7张图片。 我使用预训练vgg16从每幅图像中提取特征,因此我现在将数据集设置为图像数组 每个图像的大小都是7*7*512。 我只处理了我的数据集的10个视频,所以我有(10*7=70)图像的特征,所以我的特征阵列是成型的(70,7,7,512) 因此,我将我的数据重塑为如下概念(样本、时间步长、特征)我将我的样本视为我的视频,我的时间步长视为每个视频中的图像数,即7个图像,特征数为7*7*512=25088,因此我将输入重塑为(10,72508
lstm_train_sample = np.reshape(x,(10,7,25088))
t_labels = [1,1,1,1,1,1,1,1,1,1]
lstm = Sequential()
lstm.add(LSTM(200, activation='relu', return_sequences=True, input_shape=(7, 25088)))
lstm.add(LSTM(100, activation='relu', return_sequences=True))
lstm.add(LSTM(50, activation='relu', return_sequences=True))
lstm.add(LSTM(25, activation='relu'))
lstm.add(Dense(20, activation='relu'))
lstm.add(Dense(10, activation='relu'))
lstm.add(Dense(2))
lstm.compile(optimizer='adam', loss='mse')
lstm.compile(optimizer='adam', loss='mse',metrics=['accuracy'])
lstm.fit(lstm_train_sample , t_labels , epochs=150 , batch_size=2 )
所以我有一些问题:
1-输入的形状是这样的吗 2-第一层的形状是对的还是错的?(时间步长、功能数量) 3-我将批量大小设置为2,我想知道这里的批量大小意味着每个批次有2个视频,或者意味着每个批次有2个图像? 另一方面,批量大小是处理视频样本还是处理图像时间步长
4-我需要为每个视频或图像序列制作标签这意味着我需要10个标签的数组,因为我为train使用10个视频,所以我如何才能以正确的方式为它们创建标签,使LSTM将标签作为类而不是整数值处理。1-输入形状是这样的 对 2-第一层的形状是对的还是错的?(时间步长、功能数量) 是的,没关系 3-我将批量大小设置为2,我想知道这里的批量大小意味着每个批次有2个视频,或者意味着每个批次有2个图像?另一方面,批量大小是处理视频样本还是处理图像时间步长 batch_size=2,意味着一批将传递2个数据点,即2个视频,而不是图像。您在批处理中的数据维度将是(2,7,25088) 4-我需要为每个视频或图像序列制作标签这意味着我需要一个10个标签的数组,因为我在列车上使用10个视频,所以我如何为它们创建标签?错误的方式使LSTM将标签作为类而不是整数值处理
您的标签必须是一个热编码标签。您可以使用
tensorflow.keras.utils.to\u category
1-输入的形状是这样的吗
对
2-第一层的形状是对的还是错的?(时间步长、功能数量)
是的,没关系
3-我将批量大小设置为2,我想知道这里的批量大小意味着每个批次有2个视频,或者意味着每个批次有2个图像?另一方面,批量大小是处理视频样本还是处理图像时间步长
batch_size=2,意味着一批将传递2个数据点,即2个视频,而不是图像。您在批处理中的数据维度将是(2,7,25088)
4-我需要为每个视频或图像序列制作标签这意味着我需要一个10个标签的数组,因为我在列车上使用10个视频,所以我如何为它们创建标签?错误的方式使LSTM将标签作为类而不是整数值处理
您的标签必须是一个热编码标签。您可以使用
tensorflow.keras.utils.to_category
很好,如果有帮助,请不要忘记更新投票/接受答案。很好,如果有帮助,请不要忘记更新投票/接受答案。