首页 > 解决方案 > TypeError:('关键字参数不理解:','子样本')

问题描述

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

类型错误

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')

定义 Nvidia 模型

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())

标签: pythonpandaskerastensorflow2.0

解决方案


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())

Instead of this, replace the code with the following:

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())

(Notice I added parentheses.) If still the code doesn't work then replace subsample with strides everywhere


推荐阅读