कई उद्देश्य कार्यों कैसे आप अपने खुद के उद्देश्य समारोह बना सकते हैं Keras here.केरास में कस्टम उद्देश्य फ़ंक्शन कैसे बनाएं?
में कर रहे हैं लेकिन, मैं एक बहुत ही मूल उद्देश्य समारोह बनाने की कोशिश की, लेकिन यह एक त्रुटि देता है और मैं कोई रास्ता नहीं के आकार का पता करने के लिए नहीं है पैरामीटर रन रन पर फ़ंक्शन को पास कर दिया गया।
def loss(y_true,y_pred):
loss = T.vector('float64')
for i in range(1):
flag = True
for j in range(y_true.ndim):
if(y_true[i][j] == y_pred[i][j]):
flag = False
if(flag):
loss = loss + 1.0
loss /= y_true.shape[0]
print loss.type
print y_true.shape[0]
return loss
2 का खंडन त्रुटियों,
model.compile(loss=loss, optimizer=ada)
File "/usr/local/lib/python2.7/dist-packages/Keras-0.0.1-py2.7.egg/keras/models.py", line 75, in compile
updates = self.optimizer.get_updates(self.params, self.regularizers, self.constraints, train_loss)
File "/usr/local/lib/python2.7/dist-packages/Keras-0.0.1-py2.7.egg/keras/optimizers.py", line 113, in get_updates
grads = self.get_gradients(cost, params, regularizers)
File "/usr/local/lib/python2.7/dist-packages/Keras-0.0.1-py2.7.egg/keras/optimizers.py", line 23, in get_gradients
grads = T.grad(cost, params)
File "/usr/local/lib/python2.7/dist-packages/theano/gradient.py", line 432, in grad
raise TypeError("cost must be a scalar.")
TypeError: cost must be a scalar.
इसे कहते हैं लागत या हानि समारोह में लौटे एक अदिश होना चाहिए, लेकिन हो रही है अगर मैं नुकसान = T.vector ('से लाइन 2 को बदलने float64 ')
को
नुकसान = T.scalar (' float64 ')
यह इस त्रुटि
से पता चलताmodel.compile(loss=loss, optimizer=ada)
File "/usr/local/lib/python2.7/dist-packages/Keras-0.0.1-py2.7.egg/keras/models.py", line 75, in compile
updates = self.optimizer.get_updates(self.params, self.regularizers, self.constraints, train_loss)
File "/usr/local/lib/python2.7/dist-packages/Keras-0.0.1-py2.7.egg/keras/optimizers.py", line 113, in get_updates
grads = self.get_gradients(cost, params, regularizers)
File "/usr/local/lib/python2.7/dist-packages/Keras-0.0.1-py2.7.egg/keras/optimizers.py", line 23, in get_gradients
grads = T.grad(cost, params)
File "/usr/local/lib/python2.7/dist-packages/theano/gradient.py", line 529, in grad
handle_disconnected(elem)
File "/usr/local/lib/python2.7/dist-packages/theano/gradient.py", line 516, in handle_disconnected
raise DisconnectedInputError(message)
theano.gradient.DisconnectedInputError: grad method was asked to compute the gradient with respect to a variable that is not part of the computational graph of the cost, or is used only by a non-differentiable operator: <TensorType(float64, matrix)>
आपका नुकसान यह इन मानकों पर टेन्सर संचालन की अवधि में व्यक्त किया जाना है '' 'y_true''' और' '' y_pred''' है, यानी की एक थेनो समारोह होना चाहिए। –