Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- frames_folder = 'path/to/folder'
- X_data = []
- y_data = []
- list_of_sent = os.listdir(frames_folder)
- print (list_of_sent)
- class_num = 0
- time_steps = 0
- frames = []
- for i in list_of_sent:
- classes_folder = str(frames_folder + '/' + i) #path to each class
- print (classes_folder)
- list_of_frames = os.listdir(classes_folder)
- time_steps= 0
- frames = []
- for filename in sorted(list_of_frames):
- if ( time_steps == total_timesteps ):
- X_data.append(frames) #appending each tensor of 8 frames resized to 110,110
- y_data.append(class_num) #appending a class label to the set of 8 frames
- time_steps = 0
- frames = []
- else:
- time_steps+=1
- filename = cv2.imread(vid + '/' + filename)
- filename = cv2.resize(filename,(width, height),interpolation=cv2.INTER_AREA)
- frames.append(filename)
- class_num+=1
- X_data = np.array(X_data)
- y_data = np.array(y_data)
- print (X_data.shape)
- X_data = X_data.reshape(samples ,timesteps,width* height*channels)
- #Encoding Targets with OneHotEncoding
- y_data = y_data.reshape(len(y_data), 1)
- encoder = OneHotEncoder(sparse=False)
- y_encoded = encoder.fit_transform(y_data)
- #Splitting in Train and Test Data
- X_train, X_test, y_train, y_test = train_test_split(X_data, y_encoded, test_size=0.2, shuffle=True, random_state=100 , stratify=y_encoded)
- model = Sequential()
- model.add(LSTM(16, return_sequences=False, input_shape=(timesteps, width* height*channels)))
- model.add(Dense(classes, activation='softmax'))
- model.summary()
- adam = optimizers.Adam(lr=0.00001)#, decay=0.000001)
- model.compile(optimizer = adam, loss='categorical_crossentropy', metrics=['accuracy'])#, sample_weight_mode='temporal')
- history = model.fit(X_train, y_train, batch_size=16, epochs = 48, validation_data=(X_test, y_test))
Advertisement
Add Comment
Please, Sign In to add comment