#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Dec 3 16:35:49 2018
@author: lg
"""
from keras.layers import Reshape,Convolution2D,PReLU,ZeroPadding2D,BatchNormalization
from keras.layers import AveragePooling2D,Dropout,Dense,GlobalAveragePooling2D
from keras.models import load_model
from keras.models import Model
from keras.layers import Input, Add, Activation, ZeroPadding2D,concatenate
from keras.layers import TimeDistributed,LSTM
import numpy as np
import pandas as pd
import tensorflow as tf
from keras.models import load_model
from mongo_data import data_set
from keras.utils import multi_gpu_model
import config
time_span=config.time_span()
feature=config.feature_number()
gpu_num=config.gpu_number()
input_shape = (time_span, feature, 1)
X_input = Input(input_shape)
def block_unit(filt,x):
conv3=ZeroPadding2D(padding=(1, 1))(x)
conv3=Convolution2D(filt, 3, 3, border_mode='same',init='glorot_uniform')(conv3)
#model.add(Activation('relu'))
l3=PReLU()(conv3)
l3=BatchNormalization()(l3)
conv4=ZeroPadding2D(padding=(1, 1))(l3)
conv4=Convolution2D(filt, 3, 3, border_mode='same',init='glorot_uniform')(conv4)
#model.add(Activation('relu'))
l4=PReLU()(conv4)
l4=BatchNormalization()(l4)
m4=AveragePooling2D((3, 3), strides=(3, 3))(l4)
d4=Dropout(0.25)(m4)
return d4
def get_model(X_input):#重新建立模型,与原来不一样的是这里inp是传入
n_classes = 5
x=block_unit(32,X_input)
x=block_unit(64,x)
x=block_unit(128,x)
# x=block_unit(256,x)
x=GlobalAveragePooling2D()(x)
x=Dense(1024)(x)
x=PReLU()(x)
x=Dropout(0.5)(x)
x=Dense(1024)(x)
x=PReLU()(x)
x=Dropout(0.5)(x)
x=Dropout(0.5)(x)
x=Dense(512)(x)
x=PReLU()(x)
x=Dropout(0.5)(x)
result=Dense(n_classes, activation='softmax')(x)
# result=g
model=Model(inputs=X_input,outputs=result)
return model