मैं तंत्रिका नेटवर्क बनाने और चलाने के लिए टेन्सोरफ्लो बैकएंड के साथ केरा का उपयोग कर रहा हूं। मुझे हानि फ़ंक्शन में मेरे आउटपुट टेंसर पर एक numpy फ़ंक्शन का उपयोग करने की आवश्यकता है। अधिक विशेष रूप से, मेरे हानि समारोह में निकटतम पड़ोसियों को ढूंढना शामिल है, और मुझे इस उद्देश्य के लिए ckdTree के लिए केरास कार्यक्षमता का उपयोग करने की आवश्यकता है। मैंने K.eval()
का उपयोग करके अपने आउटपुट टेंसर को एक numpy सरणी में परिवर्तित करने का प्रयास किया है। हालांकि, जब मैं मॉडल को संकलित करने का प्रयास करता हूं तो यह InvalidArgument
त्रुटि फेंकता है, मुझे विश्वास है, क्योंकि आप प्रतीकात्मक चर पर eval()
नहीं चला सकते हैं।हानि फ़ंक्शन में कैरेक्टर टेंसर पर numpy फ़ंक्शंस का उपयोग कैसे करें?
यहां एक खिलौना कोड स्निपेट है जो इस त्रुटि को पुन: उत्पन्न करता है।
import numpy as np
from keras import backend as K
from keras.models import Sequential
from keras.layers.core import Flatten, Dense, Reshape
from keras.optimizers import Adam
def loss(y_true, y_pred):
y_pred_numpy = K.eval(y_pred)
# perform some numpy operations on y_pred_numpy
return K.constant(0)
''' Model '''
input_shape = (10,10,10,3)
train_images = np.zeros((1,10,10,10,3))
train_labels = np.zeros((1,1,1,1,3))
model = Sequential()
model.add(Flatten(input_shape=input_shape))
model.add(Dense(3000, use_bias=True, bias_initializer='zeros'))
model.add(Reshape((10,10,10,3)))
model.summary()
opt = Adam(lr=1E-4)
model.compile(optimizer=opt, loss=loss)
ऊपर निम्न त्रुटि देता है:
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'flatten_3_input' with dtype float
[[Node: flatten_3_input = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
[[Node: reshape_3/Reshape/_11 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_20_reshape_3/Reshape", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
मैं Keras का उपयोग कर (जटिल) numpy कार्यक्षमता के पुनर्लेखन के लिए बिना Keras tensors के साथ कैसे तो काम करते हैं?
यह वास्तव में नुकसान समारोह में एक समस्या है ??? क्या आपने 'loss = 'mse'' के साथ संकलन करने का प्रयास किया है? - हालांकि यहां तक कि, मैं नहीं यकीन है कि keras tensors के साथ संचालन numpy स्वीकार करेंगे हूँ। :( –
क्या आप पर एक नजर है [इस सवाल] (https://stackoverflow.com/questions/39921607/how-to-make-a-custom-activation-function-with-only-python-in-tensorflow) पहले से? –