使用序列到序列深度学习方法自动睡眠阶段评分
深度学习方法,用于使用单通道脑电图进行自动睡眠阶段评分。
def build_firstPart_model(input_var,keep_prob_=0.5):# List to store the output of each CNNsoutput_conns = []######### CNNs with small filter size at the first layer ########## Convolutionnetwork = tf.layers.conv1d(inputs=input_var, filters=64, kernel_size=50, strides=6,padding='same', activation=tf.nn.relu)network = tf.layers.max_pooling1d(inputs=network, pool_size=8, strides=8, padding='same')# Dropoutnetwork = tf.nn.dropout(network, keep_prob_)# Convolutionnetwork = tf.layers.conv1d(inputs=network, filters=128, kernel_size=8, strides=1,padding='same', activation=tf.nn.relu)network = tf.layers.conv1d(inputs=network, filters=128, kernel_size=8, strides=1,padding='same', activation=tf.nn.relu)network = tf.layers.conv1d(inputs=network, filters=128, kernel_size=8, strides=1,padding='same', activation=tf.nn.relu)# Max poolingnetwork = tf.layers.max_pooling1d(inputs=network, pool_size=4, strides=4, padding='same')# Flattennetwork = flatten(name="flat1", input_var=network)output_conns.append(network)######### CNNs with large filter size at the first layer ########## Convolutionnetwork = tf.layers.conv1d(inputs=input_var, filters=64, kernel_size=400, strides=50,padding='same', activation=tf.nn.relu)network = tf.layers.max_pooling1d(inputs=network, pool_size=4, strides=4, padding='same')# Dropoutnetwork = tf.nn.dropout(network, keep_prob_)# Convolutionnetwork = tf.layers.conv1d(inputs=network, filters=128, kernel_size=6, strides=1,padding='same', activation=tf.nn.relu)network = tf.layers.conv1d(inputs=network, filters=128, kernel_size=6, strides=1,padding='same', activation=tf.nn.relu)network = tf.layers.conv1d(inputs=network, filters=128, kernel_size=6, strides=1,padding='same', activation=tf.nn.relu)# Max poolingnetwork = tf.layers.max_pooling1d(inputs=network, pool_size=2, strides=2, padding='same')# Flattennetwork = flatten(name="flat2", input_var=network)output_conns.append(network)# Concatnetwork = tf.concat(output_conns,1, name="concat1")# Dropoutnetwork = tf.nn.dropout(network, keep_prob_)return network