• keras写模型时遇到的典型问题,也是最基础的类与对象问题


    自己定义了一个卷积类,现在需要把卷积加入model中,我的操作是这样的:

    model.add(Convolution1dLayer)

    这样就会报错:

    正确的写法是:

    model.add(Convolution1dLayer())

    原因是Convolution1dLayer仅仅是一个类,但model需要添加的层必须是实例(对象),必须把类实例化后才能添加。

    实际上,'Convolution1dLayer()'也并没有实例化,因为在我自己定义的Convolution1dLayer这个类中定义了许多需传入参数的属性,但这里并没有参数传入,实际上也没有实例化。

    比如像以下这种的可以不传入参数,直接加一个括号就能实例化:

    keras.layers.convolutional.MaxPooling1D(pool_length=2, stride=None, border_mode='valid')

    因为在定义时,所有属性都已经初始化参数了,可以不用再传入参数,传入参数就更改了初始值。

    注意:None也是对属性的初始化

    b:报错

    b=None:不报错

    属性没有=时,顺序重要,有等于(即有初始化时),顺序无所谓,但必须在传入参数时带上相应的属性名

    总结一下就是:有需要传入参数的属性的类,必须传入参数才能实例化。没有需要传入参数的属性的类,直接()就能实例化。

  • 相关阅读:
    RF操作execl
    fiddler 设置代理以后不能访问网络的解决办法
    Eclipse没有Web插件和JavaEE插件咋整
    mysql 分页查询的标准写法
    java读写操作
    java 链接mysql
    关于博客
    响应式排版中的基础知识
    前端性能优化最佳实践
    HTTP必知必会
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/6492601.html
Copyright © 2020-2023  润新知