美文网首页深度学习
keras 整体解答

keras 整体解答

作者: horsetif | 来源:发表于2018-07-01 14:33 被阅读0次

    这篇文章主要是基于一下网站整理得到,提供一个整体的计算流程.关于实现细节,还是要重点看这个网站的内容,以及实例代码.
    参考网站

    输入端

    from keras.layers import Input, Dense
    from keras.models import Model
    
    inputs = Input(shape=(784,))#这里输入的是不确定量
    

    正向传播网络层

    x = Dense(64, activation='relu')(inputs)
    predictions = Dense(10, activation='softmax')(x)
    Conv2D(64, (1, 1), padding='same', activation='relu')(input_img)
    concatenated = keras.layers.concatenate([out_a, out_b])#合并
    Flatten()#合并层
    keras.layers.pooling.MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)#池化层
    #计算网络层的概念
    layer.get_input_at(node_index)
    layer.get_output_at(node_index)
    layer.get_input_shape_at(node_index)
    layer.get_output_shape_at(node_index)
    

    反向传播层

    model = Model(inputs=inputs, outputs=predictions)
    model.compile(optimizer='rmsprop',
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
    compile(self, optimizer, loss, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
    model.fit(x_train, y_train, epochs=5, batch_size=32)
     model.train_on_batch(x_batch, y_batch)#一个一个独立的算
    loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)#评估
    classes = model.predict(x_test, batch_size=128)#预测
    
    

    模型总体观察

    model.summary()#查看模型情况
    
    config = model.get_config()
    model = Model.from_config(config)#重构配置
    #保存网络结构
    from models import model_from_json
    json_string = model.to_json()
    model = model_from_json(json_string)
    
    yaml_string = model.to_yaml()
    model = model_from_yaml(yaml_string)
    #保存权重
    model.save_weights(filepath)
    model.load_weights(filepath, by_name=False)
    

    如何建立一个自己的层(主要记住前三个主函数)

    class BilinearUpsampling(Layer):
        def __init__(self,upsampling=(2,2),**kwargs):
            super(BilinearUpsampling,self).__init__(**kwargs)
            self.input_spec=InputSpec(ndim=4)
            self.upsampling=conv_utils.normalize_tuple(upsampling,2,'test1')
        def compute_output_shape(self,input_shape):
            height=self.upsampling[0]*input_shape[1]
            width=self.upsampling[1]*input_shape[2]
            return(input_shape[0],height,width,input_shape[3])
        def call(self,inputs):
            return K.tf.image.resize_bilinear(inputs,(inputs.shape[1]*self.upsampling[0],inputs.shape[2]*self.upsampling[1]))
        def get_config(self):
            config={'upsampling':self.upsampling,
                   'output_size':self.output_size,
                   'data_format':self.data_format}
            base_config=super(BilinearUpsampling,self).get_config()
            return dict(list(base_config.items())+list(config.items()))        
    

    相关文章

      网友评论

        本文标题:keras 整体解答

        本文链接:https://www.haomeiwen.com/subject/zrwcuftx.html