Python TypeError:(';关键字参数未理解:';,';子样本';)

Python TypeError:(';关键字参数未理解:';,';子样本';),python,pandas,keras,tensorflow2.0,Python,Pandas,Keras,Tensorflow2.0,我试图实现以下代码,但它抛出了一个错误 打字错误 Traceback (most recent call last) <ipython-input-29-6ed67c712ed4> in <module>() 28 return model 29 ---> 30 model = nvidia_model() 31 print(model.summary()) 32 # dead relu

我试图实现以下代码,但它抛出了一个错误

打字错误

Traceback (most recent call last)

<ipython-input-29-6ed67c712ed4> in <module>()
     28     return model    
     29   
---> 30 model = nvidia_model()     
     31 print(model.summary())  
     32 # dead relu problem: when a node in the network essentially dies and only feeds value of 0 to the following nodes.

5 frames

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/utils/generic_utils.py in validate_kwargs(kwargs, allowed_kwargs, error_message)
    776   for kwarg in kwargs:
    777     if kwarg not in allowed_kwargs:
--> 778       raise TypeError(error_message, kwarg)
    779 
    780 

TypeError: ('Keyword argument not understood:', 'subsample')

尝试使用池而不是子样本。通常这会起作用。

我被困在同一个错误上。以下是我的发现:

卷积2D
是Keras v1 API(文档:)

Conv2D
是较新的v2 API(文档:)

我通过以下更改使其工作:

  • 将导入卷积2D更改为导入卷积2D

  • 改变

  • 找到了解决办法

    这是因为将内核的参数用作元组。所以,对我来说,做(5,5)是有效的

    p、 这是我给出的第一个答案,耶

    def nvidia_model():
    模型=顺序()
    添加(卷积2D(24,5,5,子样本=(2,2),输入_形状=(66200,3),激活=(relu'))
    add(卷积2d(36,5,5,子样本=(2,2),激活=(relu'))
    add(卷积2d(48,5,5,子样本=(2,2),激活=(relu'))
    添加(卷积2D(64,3,3,activation='relu'))
    模型。添加(辍学率(0.5))
    model.add(展平())
    添加(密集(100,激活='relu'))
    模型。添加(辍学率(0.5))
    添加(密集(50,激活='relu'))
    模型。添加(辍学率(0.5))
    添加(密集(10,激活='relu'))
    模型。添加(辍学率(0.5))
    模型.添加(密集(1))#输出预测的转向角
    优化器=Adam(lr=1e-4)
    compile(loss='mse',optimizer=optimizer)
    回归模型
    型号=nvidia_型号()
    打印(model.summary())
    
    请将代码替换为以下内容:

    def nvidia_model():
    模型=顺序()
    添加(卷积2D(24,(5,5),子样本=(2,2),输入_形状=(66200,3),激活=(relu'))
    添加(卷积2D(36,(5,5),子样本=(2,2),激活=(relu'))
    add(卷积2d(48,(5,5),子样本=(2,2),激活=(relu'))
    添加(卷积2d(64,(3,3),activation='relu'))
    模型。添加(辍学率(0.5))
    model.add(展平())
    添加(密集(100,激活='relu'))
    模型。添加(辍学率(0.5))
    添加(密集(50,激活='relu'))
    模型。添加(辍学率(0.5))
    添加(密集(10,激活='relu'))
    模型。添加(辍学率(0.5))
    模型.添加(密集(1))#输出预测的转向角
    优化器=Adam(lr=1e-4)
    compile(loss='mse',optimizer=optimizer)
    回归模型
    型号=nvidia_型号()
    打印(model.summary())
    

    (注意我添加了括号。)如果代码仍然不起作用,则将
    子样本
    替换为
    步幅
    无处不在

    添加一个独立的代码来重现您的问题。您找到解决此问题的方法了吗?我也尝试过同样的方法,但它抛出了一个池大小未定义的错误。你的子样本在哪里?
    def nvidia_model():    
        model= Sequential()
         
        model.add(Convolution2D(24, 5, 5, subsample=(2, 2), input_shape=(66, 200, 3), activation='relu'))
        model.add(Convolution2D(36, 5, 5, subsample=(2, 2), activation='relu'))
        model.add(Convolution2D(48, 5, 5, subsample=(2, 2), activation='relu'))
        model.add(Convolution2D(64, 3, 3, activation='relu'))
        model.add(Dropout(0.5))
      
        model.add(Flatten())
      
        model.add(Dense(100, activation = 'relu'))
        model.add(Dropout(0.5))
      
        model.add(Dense(50, activation = 'relu'))
        model.add(Dropout(0.5))
      
        model.add(Dense(10, activation = 'relu'))
        model.add(Dropout(0.5))
      
        model.add(Dense(1)) # output the predicted steering angle 
      
        optimizer = Adam(lr=1e-4)
        model.compile(loss='mse', optimizer=optimizer)
        return model
    
    model = nvidia_model()    
    print(model.summary())
    
    model.add(Convolution2D(24, 5, 5, subsample=(2, 2), input_shape=(66, 200, 3), activation='relu'))
        model.add(Convolution2D(36, 5, 5, subsample=(2, 2), activation='relu'))
        model.add(Convolution2D(48, 5, 5, subsample=(2, 2), activation='relu'))
        model.add(Convolution2D(64, 3, 3, activation='relu'))
    
      model.add(Conv2D(24, 5, 2, input_shape = (66, 200, 3), activation = 'relu'))
      model.add(Conv2D(36, 5, 2, activation = 'relu'))
      model.add(Conv2D(48, 5, 2, activation = 'relu'))
      model.add(Conv2D(64, 3, activation = 'relu'))
      model.add(Conv2D(64, 3, activation = 'relu'))