victory的博客

长安一片月,万户捣衣声

0%

Five Major Brain Waves

Five major brain waves can be distinguished by their frequency ranges:

|frequency band|frequency range|
|—–|—-|—-|
|delta|0.5-4Hz|appears for continuous-attention tasks|
|theta|4-8Hz|spikes when repressing(抑制) a response or action|
|alpha|8-13Hz|measures relax or closing eyes|
|beta|13-30Hz|reflects active thinking,focus,high alert or anxiety|
|gamma|30-50Hz|displays during cross-modal sensory processing|

绝对路径和相对路径

绝对路径:相对于磁盘的位置定位文件的地址
相对路径:相对于引用文件本身定位被引用文件的地址

Note:
./ 当前文件所在目录下
../ 当前文件所在目录的上一级目录

Python变量单前下划线与双前下划线的区别

_variable

表面上为私有,实际在外部可以访问

__variable

实际上的私有,只能在内部访问,不能在外部访问(报错)

_ variable _

魔法方法(magic method)/ 特殊方法

Example

class TestPrivacy(object):
    _name = 'hello' 
    __name = 'world'
    
print(TestPrivacy._name) # Output:'hello'
print(TestPrivacy.__name) # Output: AttributeError: type object 'TestPrivacy' has no attribute '__name'

脑电信号采用深度学习方法存在的问题

深度学习是一种构造多层神经网络的机器学习方法,具有发现数据中隐藏的分布式特征表示的能力。

脑电信号特征提取方法:

时域分析方法
频域分析方法
时频域分析犯法
非线性分析方法

脑电信号采用深度学习方法目前存在的问题

(1)深度神经网络层数的最优化,不是越多的网络层数就能得到最好的结果
(2)数据量也是造成深度学习方法无法深入的原因

Web服务器

Web服务器是可以向发出请求的浏览器提供文档的程序。

Code:

# coding:utf-8
import socket
import re

from multiprocessing import Process

# 设置静态文件根目录
HTML_ROOT_DIR = "./html"


def handle_client(client_socket):
    """处理客户端请求"""
    # 获取客户端请求数据
    request_data = client_socket.recv(1024)
    print("request data:",request_data)
    request_lines = request_data.splitlines()
    for line in request_lines:
        print(line)

    # 解析请求报文
    # 'GET / HTTP/1.1'
    request_start_line = request_lines[0]
    #提取用户请求的文件名
    file_name = re.match(r"\w+ +(/[^ ]*) ",request_start_line.decode("utf-8")).group(1)

    if "/" == file_name:
        file_name = "/index.html"
    # 打开文件,读取内容
    try:
        file = open(HTML_ROOT_DIR + file_name,"rb")
    except IOError:
        response_start_line = "HTTP/1.1 404 Not Found\r\n"
        response_headers = "Server: My server\r\n"
        response_body = "the file is not found"
    else:
        file_data = file.read()
        file.close()

        # 构造响应数据
        response_start_line = "HTTP/1.1 200 OK\r\n"
        response_headers = "Server: My server\r\n"
        response_body = file_data.decode("utf-8")

    response = response_start_line + response_headers + "\r\n" + response_body
    print("response:",response)

    # 向客户端返回响应数据
    client_socket.send(bytes(response,"utf-8"))

    #关闭客户端链接
    client_socket.close()

def main():
    server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    #SOL_SOCKET:设置选项级别为SOCKET
    #SO_REUSEADDR:1
    server_socket.bind(("",7788))
    server_socket.listen(128)

    while True:
        client_socket,client_address= server_socket.accept()
        print("[%s,%s]用户连接上了"%(client_address))
        handle_client_process = Process(target=handle_client,args=(client_socket,))
        handle_client_process.start()
        client_socket.close()

if __name__ == "__main__":
    main()

访问Web服务器

在浏览器地址栏输入 127.0.0.1:7788或127.0.0.1:7788/index.html

项目文件结构

文件结构

HTTP请求方法

常见的几种请求方式

Methods Descriptions
GET 获取数据 例如:获取指定的页面
POST 修改数据 例如:提交表单、上传文件
PUT 保存数据
DELETE 删除 例如:删除指定页面
OPTION 询问服务器的某种支持特性
HEAD 用于获取报头

re.match与re.search的区别

re.match从字符串的起始位置匹配一个模式,如果字符串开始不符合正则表达式,则匹配失败。
re.search匹配整个字符串,直到找到一个匹配

Example

s = "Cats are smarter than dogs"
re.match(r"dogs",s)#匹配失败
re.search(r"dogs",s)#匹配成功

动态规划与分治

动态规划

利用问题的解与其子问题的解之间的关系(动态规划方程),以自底向上的方式递归地从子问题的最优解逐步构造出整个问题的解的算法

分治(Divide and Conquer)

将一个问题为若干个子问题,将这些子问题分别求解;将求出的小规模的子问题的解合并为一个更大规模的问题的解,自底向上求出原来问题的解

核心思想:大问题—>小问题

区别:

分治:自顶向下
动态规划:自底向上

动态规划的基本步骤

  • 找出最优解的性质,并刻画其结构特征
  • 建立动态规划方程
  • 以自底向上的方式解动态规划方程
  • 根据计算最优质的时得到的信息构造最优解

Pseudocode:

dynamic-program(P)
{
    for(i=1;i<=n;i++)
    {
        compute(solution of each Pi);//解规模为i的各子问题
        use(solution of each Pi) merge(solution of each Pi+1);
        //将规模为i的各子问题的解合并为规模为i+1的问题的解
    }
}

EEG Pathology Detection Based on Deep Learning

Target: EEG Pathology Detection

Proposed Methonds:

Method One:Shallow CNN Model
Method Two:Deep CNN Model(AlexNet)
Method Three:Fusion stategy based on a multiplayer perception
Fusion of CNN features of several distinct temporal segments of the EEG signal

In future study:investigate different fusion strategies

I/O密集型和计算密集型

I/O密集型—>需要网络功能,大量的时间都在等待网络数据的到来—>通常使用多线程/协程

计算密集型—>需要占用大量的cpu资源—>通常使用多进程