![](/img/trans.png)
[英]Theano: when was the filter_flip parameter for conv2d introduced? (TypeError: __init__() got an unexpected keyword argument 'filter_flip')
[英]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.