2
def compileActivation(self, net, layerNum):
variable = net.x if layerNum == 0 else net.varArrayA[layerNum - 1]
#print tf.expand_dims(net.dropOutVectors[layerNum], 1)
#print net.varWeights[layerNum]['w'].get_shape().as_list()
z = tf.matmul((net.varWeights[layerNum]['w']), (variable * (tf.expand_dims(net.dropOutVectors[layerNum], 1) if self.dropout else 1.0))) + tf.expand_dims(net.varWeights[layerNum]['b'], 1)
a = self.activation(z, self.pool_size)
net.varArrayA.append(a)
我正在運行,其計算z
,並將其傳遞到S形激活的激活功能相同的等級。 當我嘗試執行上面的功能,我得到以下錯誤:TensorFlow錯誤:TensorShape()必須具有
ValueError: Shapes TensorShape([Dimension(-2)]) and TensorShape([Dimension(None), Dimension(None)]) must have the same rank
的theano當量計算z
工作就好了:
z = T.dot(net.varWeights[layerNum]['w'], variable * (net.dropOutVectors[layerNum].dimshuffle(0, 'x') if self.dropout else 1.0)) + net.varWeights[layerNum]['b'].dimshuffle(0, 'x')
該代碼看起來在語法上是正確的,但似乎'net'中的某個對象具有損壞的形狀。特別是'TensorShape([Dimension(-2)])'永遠不會出現,並且在TensorFlow 0.7.0中進行測試,所以如果升級,您可能會收到更有幫助的錯誤消息。 – mrry
謝謝。我會嘗試升級 –