原文章是使用tensorflow实现的,这里重新使用了PyTorch实现一下。
model.py
import torch
import torch.nn as nn
import numpy as np
class SmartphoneActivityRecognitionCNN(nn.Module):
def __init__(self, dropout_rate=0.3):
super(SmartphoneActivityRecognitionCNN, self).__init__()
# 卷积层部分
self.model =nn.Sequential(
nn.Conv1d(3, 96, kernel_size=(10,)),
nn.ReLU(),
nn.MaxPool1d(kernel_size=3,stride=3),
nn.Conv1d(96, 192, kernel_size=(10,)),
nn.ReLU(),
nn.MaxPool1d(kernel_size=3,stride=3)
)
# 全连接层部分
self.flatten = nn.Flatten()
self.dropout = nn.Dropout(dropout_rate)
self.fc = nn.Linear(1920, 6)
self.softmax = nn.Softmax(dim=1)