簡體   English   中英

TypeError: conv2d_v2() 得到了一個意外的關鍵字參數 'filter

[英]TypeError: conv2d_v2() got an unexpected keyword argument 'filter

正在嘗試使用預訓練 VGG model 在我的設備上運行 Coursera 課程中的代碼。運行 model 時出現此錯誤。這是一個關於使用 VGG model 預訓練 model 的神經風格遷移的問題。

pp = pprint.PrettyPrinter(indent=4)
model = load_vgg_model("pretrained-model/imagenet-vgg-verydeep-19.mat")
pp.pprint(model)

TypeError                                 Traceback (most recent call last)
<ipython-input-7-2a76ad487818> in <module>
      1 pp = pprint.PrettyPrinter(indent=4)
----> 2 model = load_vgg_model("pretrained-model/imagenet-vgg-verydeep-19.mat")
      3 pp.pprint(model)

D:\College\Machine learning\Coursera\c4\jovyan\work\week4\Neural Style Transfer\nst_utils.py in load_vgg_model(path)
    127     graph = {}
    128     graph['input']   = tf.Variable(np.zeros((1, CONFIG.IMAGE_HEIGHT, CONFIG.IMAGE_WIDTH, CONFIG.COLOR_CHANNELS)), dtype = 'float32')
--> 129     graph['conv1_1']  = _conv2d_relu(graph['input'], 0, 'conv1_1')
    130     graph['conv1_2']  = _conv2d_relu(graph['conv1_1'], 2, 'conv1_2')
    131     graph['avgpool1'] = _avgpool(graph['conv1_2'])

D:\College\Machine learning\Coursera\c4\jovyan\work\week4\Neural Style Transfer\nst_utils.py in _conv2d_relu(prev_layer, layer, layer_name)
    116         model at 'layer'.
    117         """
--> 118         return _relu(_conv2d(prev_layer, layer, layer_name))
    119 
    120     def _avgpool(prev_layer):

D:\College\Machine learning\Coursera\c4\jovyan\work\week4\Neural Style Transfer\nst_utils.py in _conv2d(prev_layer, layer, layer_name)
    109         W = tf.constant(W)
    110         b = tf.constant(np.reshape(b, (b.size)))
--> 111         return tf.nn.conv2d(prev_layer, strides=[1, 1, 1, 1], padding='SAME') + b
    112 
    113     def _conv2d_relu(prev_layer, layer, layer_name):

D:\Applications\Anaconda\lib\site-packages\tensorflow\python\util\dispatch.py in wrapper(*args, **kwargs)
    199     """Call target, and fall back on dispatchers if there is a TypeError."""
    200     try:
--> 201       return target(*args, **kwargs)
    202     except (TypeError, ValueError):
    203       # Note: convert_to_eager_tensor currently raises a ValueError, not a

TypeError: conv2d_v2() got an unexpected keyword argument 'filter'

這是我的function加載model。

def load_vgg_model(path):
   
    vgg = scipy.io.loadmat(path)

    vgg_layers = vgg['layers']

    def _conv2d(prev_layer, layer, layer_name):

        W, b = _weights(layer, layer_name)
        W = tf.constant(W)
        b = tf.constant(np.reshape(b, (b.size)))
        return tf.nn.conv2d(prev_layer, filter=W, strides=[1, 1, 1, 1], padding='SAME') + b

    def _conv2d_relu(prev_layer, layer, layer_name):

        return _relu(_conv2d(prev_layer, layer, layer_name))

我很困惑,因為同樣的 model 在 Coursera 上運行但不在我的電腦上運行。

Coursera 上的卷積神經網絡課程使用 TensorFlow 1.2.1

我今天在嘗試在 Google Collab 上運行這個筆記本時遇到了同樣的錯誤。

我的解決方案是:

pip uninstall tensorflow==2.3.0

pip install tensorflow==1.2.1

嘗試使用

tf.nn.conv2d(prev_layer, filters=W, strides=[1, 1, 1, 1], padding='SAME') + b

注意,過濾器現在是復數,它的過濾器

嘗試使用:

tf.nn.conv2d(prev_layer, W, strides=[1, 1, 1, 1], padding='SAME') + b

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM