import tensorflow as tf
from tensorflow.keras import layers, models
# Define a simple 3D CNN model for action recognition
model = models.Sequential([
layers.Conv3D(32, kernel_size=(3,3,3), activation='relu', input_shape=(16, 64, 64, 3)),
layers.BatchNormalization(),
layers.MaxPooling3D(pool_size=(1,2,2)),
layers.Dropout(0.3),
layers.Conv3D(64, kernel_size=(3,3,3), activation='relu'),
layers.BatchNormalization(),
layers.MaxPooling3D(pool_size=(2,2,2)),
layers.Dropout(0.4),
layers.Flatten(),
layers.Dense(128, activation='relu'),
layers.Dropout(0.5),
layers.Dense(3, activation='softmax') # 3 classes: walking, running, jumping
])
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.0005),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# Assume X_train, y_train, X_val, y_val are preloaded video data and labels
# model.fit(X_train, y_train, epochs=30, batch_size=16, validation_data=(X_val, y_val))