Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 如何将数据以正确的形状输入我的LSTM,以及如何为我的数据集创建标签?_Keras - Fatal编程技术网

Keras 如何将数据以正确的形状输入我的LSTM,以及如何为我的数据集创建标签?

Keras 如何将数据以正确的形状输入我的LSTM,以及如何为我的数据集创建标签?,keras,Keras,我有暴力场景的视频数据集,我把每一个视频都转换成了7张图片。 我使用预训练vgg16从每幅图像中提取特征,因此我现在将数据集设置为图像数组 每个图像的大小都是7*7*512。 我只处理了我的数据集的10个视频,所以我有(10*7=70)图像的特征,所以我的特征阵列是成型的(70,7,7,512) 因此,我将我的数据重塑为如下概念(样本、时间步长、特征)我将我的样本视为我的视频,我的时间步长视为每个视频中的图像数,即7个图像,特征数为7*7*512=25088,因此我将输入重塑为(10,72508

我有暴力场景的视频数据集,我把每一个视频都转换成了7张图片。 我使用预训练vgg16从每幅图像中提取特征,因此我现在将数据集设置为图像数组 每个图像的大小都是7*7*512。 我只处理了我的数据集的10个视频,所以我有(10*7=70)图像的特征,所以我的特征阵列是成型的(70,7,7,512)

因此,我将我的数据重塑为如下概念(样本、时间步长、特征)我将我的样本视为我的视频,我的时间步长视为每个视频中的图像数,即7个图像,特征数为7*7*512=25088,因此我将输入重塑为(10,725088),这是我的代码:

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

很好,如果有帮助,请不要忘记更新投票/接受答案。很好,如果有帮助,请不要忘记更新投票/接受答案。