STFT和DWT输入数据的深度学习参数

时间:2020-04-21 15:46:36

标签: python keras deep-learning conv-neural-network hyperparameters

我在STFT数据和离散小波变换数据上创建CNN模型。我想在python中的2个输入数据上获取深度学习模型的权重和偏差的数量。怎么做??

任何帮助将不胜感激。

代码:

def createModel():
   with tf.device("cpu"):
        input_shape=(1, 22, 5, 3844)
        model = Sequential()
        model.add(Conv3D(16, (22, 5, 5), strides=(1, 2, 2), padding='same',activation='relu',data_format= "channels_first", input_shape=input_shape))

        model.add(keras.layers.MaxPooling3D(pool_size=(1, 2, 2),data_format= "channels_first",  padding='same'))

        model.add(BatchNormalization())
        model.add(Conv3D(32, (1, 3, 3), strides=(1, 1,1), padding='same',data_format= "channels_first",  activation='relu'))#incertezza se togliere padding

        model.add(keras.layers.MaxPooling3D(pool_size=(1,2, 2),data_format= "channels_first", ))
        model.add(BatchNormalization())
        model.add(Conv3D(64, (1,3, 3), strides=(1, 1,1), padding='same',data_format= "channels_first",  activation='relu'))#incertezza se togliere padding
        model.add(keras.layers.MaxPooling3D(pool_size=(1,2, 2),data_format= "channels_first",padding='same' ))
        model.add(BatchNormalization())
        model.add(Dense(64, input_dim=64,kernel_regularizer=regularizers.l2(0.0001), activity_regularizer=regularizers.l1(0.0001)))
        model.add(Flatten())
        model.add(Dropout(0.5))
        model.add(Dense(256, activation='sigmoid'))
        model.add(Dropout(0.5))
        model.add(Dense(2, activation='softmax'))
        opt_adam = keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
        model.compile(loss='categorical_crossentropy', optimizer=opt_adam, metrics=['accuracy'])
    return model

1 个答案:

答案 0 :(得分:1)

您应该做的第一件事就是安装h5py

import h5py
f = h5py.File('mytestfile.hdf5', 'r')
# layer names of your model
list(f.keys())
# you can use this layers as index
d = f['dense']['dense_1']['kernel:0']

然后您可以在此文件中浏览keras模型

chapter