Tensorflow: في وقت التشغيل: "خطأ أثناء قراءة softmax / kernel متغير المورد من الحاوية: المضيف المحلي"

تم إنشاؤها على ٣٠ أبريل ٢٠١٩  ·  26تعليقات  ·  مصدر: tensorflow/tensorflow

معلومات النظام

  • هل قمت بكتابة رمز مخصص (على عكس استخدام نص برمجي لمثال الأسهم متوفر في TensorFlow): نعم ، موجود هنا (https://github.com/viaboxxsystems/deeplearning-showcase/blob/tensorflow_2.0/flaskApp.py)
  • نظام التشغيل الأساسي والتوزيع (مثل Linux Ubuntu 16.04): MAC OSX 10.14.4
  • إصدار TensorFlow (استخدم الأمر أدناه): 2.0.0-alpha0
  • إصدار Python: Python 3.6.5

يمكنك جمع بعض هذه المعلومات باستخدام التقاط بيئتنا
python -c "استيراد tensorflow مثل tf ؛ print (tf.version.GIT_VERSION، tf.version.VERSION)"
الإصدار 1.12.0-9492-g2c319fb415 2.0.0-alpha0

صف السلوك الحالي
عند تشغيل "flaskApp.py" ، بعد تحميل النموذج ومحاولة تصنيف صورة باستخدام "توقع" ، يفشل مع الخطأ:

tensorflow.python.framework.errors_impl.FailedPreconditionError: خطأ أثناء قراءة متغير المورد softmax / kernel من Container: localhost. قد يعني هذا أن المتغير كان غير مهيأ. غير موجود: المورد localhost / softmax / kernel / N10tensorflow3VarE غير موجود.

صف السلوك المتوقع
يجب إرجاع نتيجة تصنيف الصورة.

رمز إعادة إنتاج المشكلة
خطوات التكاثر:

  • git clone https://github.com/viaboxxsystems/deeplearning-showcase.git
  • git checkout tensorflow_2.0
  • (إذا لزم الأمر) pip3 install -r requirements.txt
  • export FLASK_APP=flaskApp.py
  • ابدأ التطبيق بـ flask run
  • باستخدام ساعي البريد أو curl ، أرسل أي صورة لكلب أو قطة إلى التطبيق
    Screenshot 2019-04-30 at 16 10 57
    أو
curl -X POST \
  http://localhost:5000/net/MobileNet \
  -H 'Postman-Token: ea35b79b-b34d-4be1-a80c-505c104050ec' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F image=@/Users/haitham.b/Projects/ResearchProjects/CNNs/deeplearning-showcase/data/sample/valid/dogs/dog.1008.jpg

معلومات / سجلات أخرى

E0430 13:36:10.374372 123145501933568 app.py:1761] Exception on /net/MobileNet [POST]
Traceback (most recent call last):
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/haitham.b/Projects/Virtualenvs/deeplearning-showcase/flaskApp.py", line 97, in use_net_to_classify_image
    prediction, prob = predict(net_name, image)
  File "/Users/haitham.b/Projects/Virtualenvs/deeplearning-showcase/flaskApp.py", line 59, in predict
    output_probability = net_models[cnn_name].predict(post_processed_input_images)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py", line 1167, in predict
    callbacks=callbacks)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py", line 352, in model_iteration
    batch_outs = f(ins_batch)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/keras/backend.py", line 3096, in __call__
    run_metadata=self.run_metadata)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1440, in __call__
    run_metadata_ptr)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 548, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.FailedPreconditionError: Error while reading resource variable softmax/kernel from Container: localhost. This could mean that the variable was uninitialized. Not found: Resource localhost/softmax/kernel/N10tensorflow3VarE does not exist.
     [[{{node softmax/MatMul/ReadVariableOp}}]]
TF 2.0 ops awaiting response support

التعليق الأكثر فائدة

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

ال 26 كومينتر

أي تحديثات على هذا؟

هذه ليست مشكلة في البناء / التثبيت أو الأخطاء / الأداء. يرجى نشر هذا النوع من أسئلة الدعم في Stackoverflow . هناك مجتمع كبير لدعمه والتعلم من أسئلتك. GitHub مخصص بشكل أساسي لمعالجة الأخطاء في التثبيت والأداء. شكرا!

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

أنت رائع!!!!! هذا هو الحل الافضل. هل يمكن أن تخبرني لماذا نجح الأمر بعد إضافة الجلسة؟

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

أنت رائع!!!!! هذا هو الحل الافضل. هل يمكن أن تخبرني لماذا نجح الأمر بعد إضافة الجلسة؟

شكرا لك و اهلا وسهلا بكم :).

بقدر ما أفهم ، فإن المشكلة هي أن الرسوم البيانية وجلسات Tensorflow ليست آمنة للخيط. لذلك بشكل افتراضي ، يتم إنشاء جلسة جديدة (لا تحتوي على أي أوزان تم تحميلها مسبقًا ، نماذج aso) لكل موضوع ، أي لكل طلب. من خلال حفظ الجلسة العالمية التي تحتوي على جميع النماذج الخاصة بك وتعيينها لاستخدامها من قبل keras في كل موضوع يتم حل المشكلة.

إغلاق هذا لأنني أدركت أنه سيتم حلها ، ولكن يرجى إعلامي إذا كنت مخطئًا. شكرا!

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

أنت رائع!!!!! هذا هو الحل الافضل. هل يمكن أن تخبرني لماذا نجح الأمر بعد إضافة الجلسة؟

شكرا لك و اهلا وسهلا بكم :).

بقدر ما أفهم ، فإن المشكلة هي أن الرسوم البيانية وجلسات Tensorflow ليست آمنة للخيط. لذلك بشكل افتراضي ، يتم إنشاء جلسة جديدة (لا تحتوي على أي أوزان تم تحميلها مسبقًا ، نماذج aso) لكل موضوع ، أي لكل طلب. من خلال حفظ الجلسة العالمية التي تحتوي على جميع النماذج الخاصة بك وتعيينها لاستخدامها من قبل keras في كل موضوع يتم حل المشكلة.

لدي نفس المشكلة مع Tensor flow الإصدار 1.13.1 ، الحل أعلاه يعمل بالنسبة لي.

أواجه نفس المشكلات وكنت أتساءل ما هي قيمة some_custom_config؟

أواجه نفس المشكلات وكنت أتساءل ما هي قيمة some_custom_config؟

في حالة رغبتك في تكوين جلستك (وهو ما كان علي القيام به) ، يمكنك تمرير التكوين في هذه المعلمة. عدا ذلك فقط اتركه بالخارج.

أواجه نفس المشكلات وكنت أتساءل ما هي قيمة some_custom_config؟

في حالة رغبتك في تكوين جلستك (وهو ما كان علي القيام به) ، يمكنك تمرير التكوين في هذه المعلمة. عدا ذلك فقط اتركه بالخارج.

شكرا جزيلا! كل شيء يسير على أكمل وجه الآن.

شكرا لتقديم الرموز. واجهت رسالة خطأ مماثلة أثناء تشغيل BERT على Kera. لقد جربت الحل الذي قدمته ولكن لا يمكنني تشغيله على ما يبدو. هو موضع تقدير أي توجيه!

`` FailedPreconditionError Traceback (آخر مكالمة أخيرة)
في()
11 validation_data = ([test_input_ids ، test_input_masks ، test_segment_ids] ، test_labels) ،
12 حقبة = 1 ،
---> 13 حجم_الدفعة = 32
14)

3 إطارات
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py في __call __ (self ، args ، * kwargs)
1456 ret = tf_session.TF_SessionRunCallable (جلسة_الذات_جلسة ،
1457- مداخلة من عينيها.
-> 1458 run_metadata_ptr)
1459 إذا كان run_metadata:
1460 proto_data = tf_session.TF_GetBuffer (run_metadata_ptr)

FailedPreconditionError: خطأ أثناء قراءة متغير المورد bert_layer_9_module / bert / encoder / layer_3 / output / LayerNorm / gamma من Container: localhost. قد يعني هذا أن المتغير كان غير مهيأ. غير موجود: المصدر localhost / bert_layer_9_module / bert / encoder / layer_3 / output / LayerNorm / gamma / N10tensorflow3VarE غير موجود.
[[{{node bert_layer_9 / bert_layer_9_module_apply_tokens / bert / encoder / layer_3 / output / LayerNorm / batchnorm / mul / ReadVariableOp}}] ``

لدي خطأ مشابه عند استخدام Elmo embeddings من tf-hub داخل طبقة keras مخصصة.

tensorflow.python.framework.errors_impl.FailedPreconditionError: تم العثور على خطأين أساسيين.
(0) فشل الشرط المسبق: خطأ أثناء قراءة متغير المورد ElmoEmbeddingLayer_module / bilm / CNN_high_0 / b_carry from Container: localhost. قد يعني هذا أن المتغير كان غير مهيأ. غير موجود: المورد localhost / ElmoEmbeddingLayer_module / bilm / CNN_high_0 / b_carry / class tensorflow :: Var غير موجود.
[[{{عقدة ElmoEmbeddingLayer / ElmoEmbeddingLayer_module_apply_default / bilm / add / ReadVariableOp}}]
(1) فشل الشرط المسبق: خطأ أثناء قراءة متغير المورد ElmoEmbeddingLayer_module / bilm / CNN_high_0 / b_carry from Container: localhost. قد يعني هذا أن المتغير كان غير مهيأ. غير موجود: المورد localhost / ElmoEmbeddingLayer_module / bilm / CNN_high_0 / b_carry / class tensorflow :: Var غير موجود.
[[{{عقدة ElmoEmbeddingLayer / ElmoEmbeddingLayer_module_apply_default / bilm / add / ReadVariableOp}}]
[[metrics / acc / Identity / _199]]
0 عمليات ناجحة.
تم تجاهل 0 أخطاء مشتقة.

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

أنت رائع!!!!! هذا هو الحل الافضل. هل يمكن أن تخبرني لماذا نجح الأمر بعد إضافة الجلسة؟

شكرا لك و اهلا وسهلا بكم :).

بقدر ما أفهم ، فإن المشكلة هي أن الرسوم البيانية وجلسات Tensorflow ليست آمنة للخيط. لذلك بشكل افتراضي ، يتم إنشاء جلسة جديدة (لا تحتوي على أي أوزان تم تحميلها مسبقًا ، نماذج aso) لكل موضوع ، أي لكل طلب. من خلال حفظ الجلسة العالمية التي تحتوي على جميع النماذج الخاصة بك وتعيينها لاستخدامها من قبل keras في كل موضوع يتم حل المشكلة.

شكرا جزيلا لهذا.

في حالتي ، فعلت ذلك بشكل مختلف قليلاً ، في حال ساعدت أي شخص:

# on thread 1
session = tf.Session(graph=tf.Graph())
with session.graph.as_default():
    k.backend.set_session(session)
    model = k.models.load_model(filepath)

# on thread 2
with session.graph.as_default():
    k.backend.set_session(session)
    model.predict(x, **kwargs)

تسمح الحداثة هنا بتحميل نماذج متعددة (مرة واحدة) واستخدامها في خيوط متعددة.
بشكل افتراضي ، يتم استخدام "الافتراضي" Session و "الافتراضي" Graph أثناء تحميل النموذج.
ولكن هنا تقوم بإنشاء أخرى جديدة.
لاحظ أيضًا أن Graph مخزّن في الكائن Session ، وهو أكثر ملاءمة قليلاً.

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

أنت رائع!!!!! هذا هو الحل الافضل. هل يمكن أن تخبرني لماذا نجح الأمر بعد إضافة الجلسة؟

شكرا لك و اهلا وسهلا بكم :).
بقدر ما أفهم ، فإن المشكلة هي أن الرسوم البيانية وجلسات Tensorflow ليست آمنة للخيط. لذلك بشكل افتراضي ، يتم إنشاء جلسة جديدة (لا تحتوي على أي أوزان تم تحميلها مسبقًا ، نماذج aso) لكل موضوع ، أي لكل طلب. من خلال حفظ الجلسة العالمية التي تحتوي على جميع النماذج الخاصة بك وتعيينها لاستخدامها من قبل keras في كل موضوع يتم حل المشكلة.

شكرا جزيلا لهذا.

في حالتي ، فعلت ذلك بشكل مختلف قليلاً ، في حال ساعدت أي شخص:

# on thread 1
session = tf.Session(graph=tf.Graph())
with session.graph.as_default():
    k.backend.set_session(session)
    model = k.models.load_model(filepath)

# on thread 2
with session.graph.as_default():
    k.backend.set_session(session)
    model.predict(x, **kwargs)

تسمح الحداثة هنا بتحميل نماذج متعددة (مرة واحدة) واستخدامها في خيوط متعددة.
بشكل افتراضي ، يتم استخدام "الافتراضي" Session و "الافتراضي" Graph أثناء تحميل النموذج.
ولكن هنا تقوم بإنشاء أخرى جديدة.
لاحظ أيضًا أن Graph مخزّن في الكائن Session ، وهو أكثر ملاءمة قليلاً.

أشكركم على هذه الإجابة
أواجه هذه المشكلة أيضًا عند استخدام flask و multithreading ، eliadl لقد

شكرا: مبتسم:

معلومات النظام

  • هل قمت بكتابة رمز مخصص (على عكس استخدام نص برمجي لمثال الأسهم متوفر في TensorFlow): نعم ، موجود هنا (https://github.com/viaboxxsystems/deeplearning-showcase/blob/tensorflow_2.0/flaskApp.py)
  • نظام التشغيل الأساسي والتوزيع (مثل Linux Ubuntu 16.04): MAC OSX 10.14.4
  • إصدار TensorFlow (استخدم الأمر أدناه): 2.0.0-alpha0
  • إصدار Python: Python 3.6.5

يمكنك جمع بعض هذه المعلومات باستخدام التقاط بيئتنا
python -c "استيراد tensorflow مثل tf ؛ print (tf.version.GIT_VERSION، tf.version.VERSION)"
الإصدار 1.12.0-9492-g2c319fb415 2.0.0-alpha0

صف السلوك الحالي
عند تشغيل "flaskApp.py" ، بعد تحميل النموذج ومحاولة تصنيف صورة باستخدام "توقع" ، يفشل مع الخطأ:

tensorflow.python.framework.errors_impl.FailedPreconditionError: خطأ أثناء قراءة متغير المورد softmax / kernel من Container: localhost. قد يعني هذا أن المتغير كان غير مهيأ. غير موجود: المورد localhost / softmax / kernel / N10tensorflow3VarE غير موجود.

صف السلوك المتوقع
يجب إرجاع نتيجة تصنيف الصورة.

رمز إعادة إنتاج المشكلة
خطوات التكاثر:

  • git clone https://github.com/viaboxxsystems/deeplearning-showcase.git
  • git checkout tensorflow_2.0
  • (إذا لزم الأمر) pip3 install -r requirements.txt
  • export FLASK_APP=flaskApp.py
  • ابدأ التطبيق بـ flask run
  • باستخدام ساعي البريد أو curl ، أرسل أي صورة لكلب أو قطة إلى التطبيق
    Screenshot 2019-04-30 at 16 10 57
    أو
curl -X POST \
  http://localhost:5000/net/MobileNet \
  -H 'Postman-Token: ea35b79b-b34d-4be1-a80c-505c104050ec' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F image=@/Users/haitham.b/Projects/ResearchProjects/CNNs/deeplearning-showcase/data/sample/valid/dogs/dog.1008.jpg

معلومات / سجلات أخرى

E0430 13:36:10.374372 123145501933568 app.py:1761] Exception on /net/MobileNet [POST]
Traceback (most recent call last):
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/haitham.b/Projects/Virtualenvs/deeplearning-showcase/flaskApp.py", line 97, in use_net_to_classify_image
    prediction, prob = predict(net_name, image)
  File "/Users/haitham.b/Projects/Virtualenvs/deeplearning-showcase/flaskApp.py", line 59, in predict
    output_probability = net_models[cnn_name].predict(post_processed_input_images)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py", line 1167, in predict
    callbacks=callbacks)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py", line 352, in model_iteration
    batch_outs = f(ins_batch)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/keras/backend.py", line 3096, in __call__
    run_metadata=self.run_metadata)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1440, in __call__
    run_metadata_ptr)
  File "/Users/haitham.b/venv/tensorflow2.0alpha/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 548, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.FailedPreconditionError: Error while reading resource variable softmax/kernel from Container: localhost. This could mean that the variable was uninitialized. Not found: Resource localhost/softmax/kernel/N10tensorflow3VarE does not exist.
   [[{{node softmax/MatMul/ReadVariableOp}}]]

أنا أيضا أواجه هذه المشكلة
tensorflow.python.framework.errors_impl.FailedPreconditionError: خطأ أثناء قراءة متغير المورد dense_6 / kernel من Container: localhost. قد يعني هذا أن المتغير كان غير مهيأ. غير موجود: المورد localhost / dense_6 / kernel / class tensorflow :: Var غير موجود.
[[{{node dense_6 / MatMul / ReadVariableOp}}]

آسف ، أنا أيضًا أواجه هذه المشكلة. لكن إجابتك لا تصلح مشكلتي ربما تكون في حالة مختلفة. في مشكلتي ، عندما أستخدم VGG16 في keras وأريد استخدام funtion التكرار
loss_value, grads_value = iterate([np.zeros((1, 150, 150, 3))])
لكن حدث هذا السؤال المماثل.
FailedPreconditionError: خطأ أثناء قراءة متغير المورد block1_conv1_12 / bias من Container: localhost. غير موجود: المورد localhost / block1_conv1_12 / bias / N10tensorflow3VarE غير موجود.[[{{node block1_conv1_12 / BiasAdd / ReadVariableOp}}]
في https://github.com/JarvisUSTC/deep-learning-with-python-notebooks/blob/master/5.4-visualizing-what-convnets-learn.ipynb ، لم تواجه المشكلة.
image

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model
from tensorflow.python.keras.applications import VGG16

sess = tf.Session()
graph = tf.get_default_graph()

set_session(sess)

#model = load_model('vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5')
model = VGG16(weights='imagenet',include_top=False)

layer_name = 'block3_conv1'
filter_index = 0

layer_output = model.get_layer(layer_name).output
loss = K.mean(layer_output[:, :, :, filter_index])
grads = K.gradients(loss, model.input)[0]
grads /= (K.sqrt(K.mean(K.square(grads))) + 1e-5)

import numpy as np
global sess
global graph
with graph.as_default():
    set_session(sess)
    iterate = K.function([model.input], [loss, grads])
    loss_value, grads_value = iterate([np.zeros((1, 150, 150, 3))])

image

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

أنت رائع!!!!! هذا هو الحل الافضل. هل يمكن أن تخبرني لماذا نجح الأمر بعد إضافة الجلسة؟

شكرا لك و اهلا وسهلا بكم :).
بقدر ما أفهم ، فإن المشكلة هي أن الرسوم البيانية وجلسات Tensorflow ليست آمنة للخيط. لذلك بشكل افتراضي ، يتم إنشاء جلسة جديدة (لا تحتوي على أي أوزان تم تحميلها مسبقًا ، نماذج aso) لكل موضوع ، أي لكل طلب. من خلال حفظ الجلسة العالمية التي تحتوي على جميع النماذج الخاصة بك وتعيينها لاستخدامها من قبل keras في كل موضوع يتم حل المشكلة.

لدي نفس المشكلة مع Tensor flow الإصدار 1.13.1 ، الحل أعلاه يعمل بالنسبة لي.

لقد نجح هذا الحل بالنسبة لي أيضًا .. شكرًاeliadl

في TF 2.x ، لا توجد جلسة (). كيف أصلحه؟ تحدث نفس المشكلة في رمز TF 2.x الخاص بي.

SungmanHong بدلاً من tf.Session حاول استخدام tf.compat.v1.Session .

في TF 2.x ، لا توجد جلسة (). كيف أصلحه؟ تحدث نفس المشكلة في رمز TF 2.x الخاص بي.

استيراد الدورة في TF 2.X
tf.compat.v1.Session()
استيراد keras.backend.get_session في TF 2.X
tf.compat.v1.keras.backend.get_session()

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

هذا عمل لي ، شكرا

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

يا رجل أنت عبقري ورائع ، لقد حفظت مشروعي للتو ، شكرًا جزيلاً لك

في TF 2.x ، لا توجد جلسة (). كيف أصلحه؟ تحدث نفس المشكلة في رمز TF 2.x الخاص بي.

استيراد الدورة في TF 2.X
tf.compat.v1.Session()
استيراد keras.backend.get_session في TF 2.X
tf.compat.v1.keras.backend.get_session()

لقد استخدمت الحل المحدد ولكني لم أعمل مع ذلك ، فأنا أتلقى الخطأ

`` The graph tensor has name: anchors/Variable:0 /usr/local/lib/python3.6/dist-packages/keras/engine/training_generator.py:49: UserWarning: Using a generator with use_multiprocessing = True and multiple workers may duplicate your data. Please consider using the keras.utils.Sequence class.
UserWarning ('استخدام منشئ مع use_multiprocessing=True '

حقبة 1/4

FailedPreconditionError Traceback (آخر مكالمة أخيرة)
في()
4 Learning_rate = config.LEARNING_RATE ،
5 فترات = 4 ،
----> 6 طبقات = "رؤوس")

6 إطارات
/usr/local/lib/python3.6/dist-packages/mrcnn/model.py in train (self، train_dataset، val_dataset، learning_rate، epochs، Layers، augmentation)
2350 max_queue_size = 100 ،
2351 عامل = عمال
-> 2352 use_multiprocessing = صحيح ،
2353)
2354 self.epoch = حد أقصى (فترة ذاتية ، عهود)

/usr/local/lib/python3.6/dist-packages/keras/legacy/interfaces.py في غلاف ( args ، * kwargs)
89 warnings. warn ("قم بتحديث مكالمتك ' + object_name + ' إلى" +
90 'Keras 2 API:' + التوقيع ، مستوى المكدس = 2)
—-> 91 وظيفة إرجاع (أرغ ، * كوارز)
92 المجمع ._original_function = func
93 عودة المجمع

/usr/local/lib/python3.6/dist-packages/keras/engine/training.py in fit_generator (self، generator، steps_per_epoch، epochs، verbose، callbacks، validation_data، validation_steps، validation_freq، class_weight، max_queue use_mipize، العمال ، خلط ورق اللعب، initial_epoch)
1730 use_multiprocessing = use_multiprocessing ،
1731 خلط ورق اللعب = خلط ورق اللعب ،
-> 1732 initial_epoch = initial_epoch)
1733
1734 @ interfaces.legacy_generator_methods_support

/usr/local/lib/python3.6/dist-packages/keras/engine/training_generator.py in fit_generator (النموذج ، المولد ، steps_per_epoch ، العصور ، المطول ، الاسترجاعات ، التحقق من صحة البيانات ، التحقق من الصحة ، الخطوات ، التحقق من الصحة ، الحجم ، class_weight ، maxip_queue_s. ، خلط ورق اللعب، initial_epoch)
218 sample_weight = sample_weight ،
219 class_weight = class_weight،
-> 220 reset_metrics = False)
221
222 الرافضة = to_list (الرافضة)

/usr/local/lib/python3.6/dist-packages/keras/engine/training.py in train_on_batch (self، x، y، sample_weight، class_weight، reset_metrics)
1512 ins = x + y + sample_weights
1513 - عمل النفس.
-> 1514 مخرجات = self.train_function (ins)
1515
1516 if reset_metrics:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py in __call __ (self ، inputs)
3630
تم جلب 3631 = self._callable_fn (* array_vals،
-> 3632 run_metadata = self.run_metadata)
3633 self._call_fetch_callbacks (جلب [-len (self._fetches):])
3634 output_structure = nest.pack_sequence_as (

/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py في __call __ (self ، args ، * kwargs)
1470 ret = tf_session.TF_SessionRunCallable (جلسة_الذات_جلسة ،
1471 - التعامل مع النفس ، أرغس ،
-> 1472 run_metadata_ptr)
1473 إذا كان run_metadata:
1474 proto_data = tf_session.TF_GetBuffer (run_metadata_ptr)

FailedPreconditionError: خطأ أثناء قراءة نقاط ارتساء / متغير المورد من الحاوية: المضيف المحلي. قد يعني هذا أن المتغير كان غير مهيأ. غير موجود: المورد localhost / anchors / Variable / N10tensorflow3VarE غير موجود.
[[{{node ROI / ReadVariableOp}]] ``

الرجاء المساعدة !!!

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

أنت رائع!!!!! هذا هو الحل الافضل. هل يمكن أن تخبرني لماذا نجح الأمر بعد إضافة الجلسة؟

شكرا لك و اهلا وسهلا بكم :).

بقدر ما أفهم ، فإن المشكلة هي أن الرسوم البيانية وجلسات Tensorflow ليست آمنة للخيط. لذلك بشكل افتراضي ، يتم إنشاء جلسة جديدة (لا تحتوي على أي أوزان تم تحميلها مسبقًا ، نماذج aso) لكل موضوع ، أي لكل طلب. من خلال حفظ الجلسة العالمية التي تحتوي على جميع النماذج الخاصة بك وتعيينها لاستخدامها من قبل keras في كل موضوع يتم حل المشكلة.

الرجاء إظهار some_custom_config غير معرّف

الرجاء إظهار some_custom_config غير معرّف

واجهت نفس المشكلة في tensorflow 1.13.1 التي قمت بحلها من خلال إنشاء مرجع للجلسة المستخدمة لتحميل النماذج ثم ضبطها لاستخدامها بواسطة keras في كل طلب. أي لقد قمت بما يلي:

from tensorflow.python.keras.backend import set_session
from tensorflow.python.keras.models import load_model

tf_config = some_custom_config
sess = tf.Session(config=tf_config)
graph = tf.get_default_graph()

# IMPORTANT: models have to be loaded AFTER SETTING THE SESSION for keras! 
# Otherwise, their weights will be unavailable in the threads after the session there has been set
set_session(sess)
model = load_model(...)

ثم في كل طلب (أي في كل موضوع):

global sess
global graph
with graph.as_default():
    set_session(sess)
    model.predict(...)

العمل لي شكرا !!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات