【TensorFlow】 基于视频时序LSTM的行为动作识别

简介
本文基于LSTM来完成用户行为识别。数据集来源:https://archive.ics.uci.edu/ml/machine-learning-databases/00240/

此数据集一共有6种行为状态:

行走;
站立;
躺下;
坐下;
上楼;
下楼;
以上6种行为数据是通过传感器进行采集的。

.\data\UCI HAR Dataset\train\Inertial Signals

实现
本次实验实现的是6分类任务。

pip install -i https://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple tensorflow==1.13.1

import tensorflow as tf
import numpy as np

# 

# 模型好坏主要由数据决定,数据决定模型上限,模型决定逼近这个上限,记录仪上的数据
def load_X(X_signals_paths):
    X_signals = []
 
    for signal_type_path in X_signals_paths:
        file = open(signal_type_path, 'r')
        X_signals.append(
            [np.array(serie, dtype=np.float32) for serie in
             [row.replace('  ', ' ').strip().split(' ') for row in file]])
        file.close()
 
    return np.transpose(np.array(X_signals), (1, 2, 0))
 
 
def load_y(y_path):
    file = open(y_path, 'r')
    y_ = np.array([elem for elem in [row.replace('  ', ' ').strip().split(' ') for row in file]], dtype=np.int32)
    file.close()
    return y_ - 1
 
 
class Config(object):
    def __init__(self, X_train, X_test):
        self.train_count = len(X_train)  # 训练记录
        self.test_data_count = len(X_test)
        self.n_steps = len(X_train[0])  # 步长,128步
 
        self.learning_rate = 0.0025
        self.lambda_loss_amount = 0.0015  # 正则化惩罚粒度
        self.training_epochs = 300
        self.batch_size = 1500
 
        self.n_inputs = len(X_train[0][0])  # 每个step收集9个,数据收集维度
        self.n_hidden = 32  # 隐层神经元个数
  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青年夏日科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值