Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • F five-video-classification-methods
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 47
    • Issues 47
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 7
    • Merge requests 7
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Matt Harvey
  • five-video-classification-methods
  • Merge requests
  • !128

notebook_tutorial for prediction with any video

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Saurabh requested to merge master into add-demo-script 6 years ago
  • Overview 2
  • Commits 6
  • Pipelines 0
  • Changes 3

This notebook shows how can you use this model to make prediction on any video pipeline_v1.pdf

Compare
  • add-demo-script (HEAD)

and
  • latest version
    6c610cd1
    6 commits, 2 years ago

3 files
+ 39
- 33

    Preferences

    File browser
    Compare changes
mode‎ls.py‎ +35 -29
train_‎cnn.py‎ +1 -1
validat‎e_rnn.py‎ +3 -3
models.py
+ 35
- 29
  • View file @ 5ef49d9e

  • Edit in single-file editor

  • Open in Web IDE


@@ -99,41 +99,47 @@ class ResearchModels():
Also known as an LRCN:
https://arxiv.org/pdf/1411.4389.pdf
"""
def add_default_block(model, kernel_filters, init, reg_lambda):
# conv
model.add(TimeDistributed(Conv2D(kernel_filters, (3, 3), padding='same',
kernel_initializer=init, kernel_regularizer=L2_reg(l=reg_lambda))))
model.add(TimeDistributed(BatchNormalization()))
model.add(TimeDistributed(Activation('relu')))
# conv
model.add(TimeDistributed(Conv2D(kernel_filters, (3, 3), padding='same',
kernel_initializer=init, kernel_regularizer=L2_reg(l=reg_lambda))))
model.add(TimeDistributed(BatchNormalization()))
model.add(TimeDistributed(Activation('relu')))
# max pool
model.add(TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2))))
return model
initialiser = 'glorot_uniform'
reg_lambda = 0.001
model = Sequential()
model.add(TimeDistributed(Conv2D(32, (7, 7), strides=(2, 2),
activation='relu', padding='same'), input_shape=self.input_shape))
model.add(TimeDistributed(Conv2D(32, (3,3),
kernel_initializer="he_normal", activation='relu')))
# first (non-default) block
model.add(TimeDistributed(Conv2D(32, (7, 7), strides=(2, 2), padding='same',
kernel_initializer=initialiser, kernel_regularizer=L2_reg(l=reg_lambda)),
input_shape=self.input_shape))
model.add(TimeDistributed(BatchNormalization()))
model.add(TimeDistributed(Activation('relu')))
model.add(TimeDistributed(Conv2D(32, (3,3), kernel_initializer=initialiser, kernel_regularizer=L2_reg(l=reg_lambda))))
model.add(TimeDistributed(BatchNormalization()))
model.add(TimeDistributed(Activation('relu')))
model.add(TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2))))
model.add(TimeDistributed(Conv2D(64, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(Conv2D(64, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2))))
model.add(TimeDistributed(Conv2D(128, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(Conv2D(128, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2))))
model.add(TimeDistributed(Conv2D(256, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(Conv2D(256, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2))))
model.add(TimeDistributed(Conv2D(512, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(Conv2D(512, (3,3),
padding='same', activation='relu')))
model.add(TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2))))
# 2nd-5th (default) blocks
model = add_default_block(model, 64, init=initialiser, reg_lambda=reg_lambda)
model = add_default_block(model, 128, init=initialiser, reg_lambda=reg_lambda)
model = add_default_block(model, 256, init=initialiser, reg_lambda=reg_lambda)
model = add_default_block(model, 512, init=initialiser, reg_lambda=reg_lambda)
# LSTM output head
model.add(TimeDistributed(Flatten()))
model.add(Dropout(0.5))
model.add(LSTM(256, return_sequences=False, dropout=0.5))
model.add(Dense(self.nb_classes, activation='softmax'))
train_cnn.py
+ 1
- 1
  • View file @ 5ef49d9e

  • Edit in single-file editor

  • Open in Web IDE


@@ -20,7 +20,7 @@ data = DataSet()
# Helper: Save the model.
checkpointer = ModelCheckpoint(
filepath=os.path.join('data', 'checkpoints', 'inception.{epoch:03d}-{val_loss:.2f}.hdf5',)
filepath=os.path.join('data', 'checkpoints', 'inception.{epoch:03d}-{val_loss:.2f}.hdf5'),
verbose=1,
save_best_only=True)
validate_rnn.py
+ 3
- 3
  • View file @ 5ef49d9e

  • Edit in single-file editor

  • Open in Web IDE


@@ -37,8 +37,8 @@ def validate(data_type, model, seq_length=40, saved_model=None,
print(rm.model.metrics_names)
def main():
model = 'mlp'
saved_model = 'data/ucf101/checkpoints/mlp-features.023-0.926.hdf5'
model = 'lstm'
saved_model = 'data/checkpoints/lstm-features.026-0.239.hdf5'
if model == 'conv_3d' or model == 'lrcn':
data_type = 'images'
@@ -48,7 +48,7 @@ def main():
image_shape = None
validate(data_type, model, saved_model=saved_model,
image_shape=image_shape)
image_shape=image_shape, class_limit=4)
if __name__ == '__main__':
main()
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Labels
2
Client: Python Enhancement: General
2
Client: Python Enhancement: General
    Assign labels
  • Manage project labels

Milestone
5.0.0
5.0.0 (expired)
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
0
0 participants
Reference: OpenAPITools/openapi-generator!7483
Source branch: master

Menu

Explore Projects Groups Snippets