اذهب إلى المحتوى

عامر ابراهيم

الأعضاء
  • المساهمات

    77
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة عامر ابراهيم

  1. لدي نموذج مدرب مسبقاً وأحاول تعديله لاستخدامه في مهمة أخرى (نقل تعلم Transfer Learning). و الآن أحاول تسريع التدريب للطبقات الجديدة التي أضفتها للنموذج والحفاظ على الطبقات المدربة عند معدل تعلم منخفض. كيف يمكننا القيام بذلك؟
     

  2. لدي مجموعة صور jpeg ضمن مجلد، وملف نصي مقابل له يحتوي على اسم الملف وتسمية الفئة المرتبطة "labels".  والآن أحاول تحويل بيانات التدريب هذه إلى ملف tfrecords . لذا كيف يمكنني القيام بذلك؟

    • أعجبني 2
  3.  كيف نقوم بتعديل قيمة واحدة ضمن ال tensor في تنسرفلو Tensorflow؟ (ليس تعيين قيمة جديدة وإنما تعديلها- إضافة قيمة مثلاً لقيمة موجودة مسبقاً-) علماً أنني حاولت القيام بذلك من خلال الفهرس لكن ظهر لدي خطأ:

    TypeError: 'Tensor' object does not support item assignment


     

  4. لديّ .tfrecord لكني لا أعرف كيف تمت هيكلته. لذا كيف يمكننا فحص المخطط لفهم ما يحتويه ملف .tfrecord؟ 

    r = tensorflow.TFRecordReader()
    myfile = tensorflow.train.string_input_producer("f.tfrecord")
    _, serialized_record = r.read(myfile)
    ... كيفية فحص serialized_record...

     

    • أعجبني 2
  5. لقد قمت بإنشاء العديد من الجلسات مع graphs  مختلفة في تنسرفلو، وتُظهر الملخصات التي أعددتها نتائج مثيرة للاهتمام في التدريب وال validation. والآن أريد  استخلاص البيانات التي قمت بحفظها ضمن السجلات (summary logs) وإجراء بعض التحليل الإحصائي وعرضها بشكل رسومي وما إلى ذلك لإلقاء نظرة دقيقة على البيانات..لذا هل هناك أي طريقة موجودة للوصول بسهولة إلى هذه البيانات؟ بشكل أكثر تحديداً ، هل هناك طريقة مضمنة لقراءة سجل TFEvent مرة أخرى في Python؟ إذا لم تكن هناك طريقة بسيطة للقيام بذلك ، فإن TensorFlow تنص على أن جميع تنسيقات ملفاتها هي ملفات protobuf. لذا أعتقد أنني سأكون قادراً على استخراج هذه البيانات إذا كان لدي مواصفات بروتوكول TFEvent. هل هناك طريقة سهلة للحصول على هذا؟
     

     

  6. أحاول الحصول على أبعاد ال tensor:

    x = tf.get_variable("x", [100])
    # عندما أقوم بطباعة أبعادها
    print( tf.shape(x) )
    # يعطيني خرجاً
    # Tensor("Shape:0", shape=(1,), dtype=int32)

    لكن الخرج المتوقع هو (100) وليس كما أعطاني في الخرج لماذا؟
     

    • أعجبني 1
  7. أحاول تطبيق شرط if على البيان التالي لكنه لاينجح، وفي الواقع توقعت أنه لن ينجح لذا هل هناك طريقة لإضافة شرط if؟ هذا هو الكود الخاص بي:

    data = tensorflow.placeholder(shape=[None, ins_size**2*3])
    wights = tensorflow.Variable(tensorflow.zeros([ins_size**2*3,label_option]))
    bias = tensorflow.Variable(tensorflow.zeros([label_option]))
    if tensorflow.placeholder(shape=[1, 1]) > 0:
        pred = tensorflow.nn.softmax(tensorflow.matmul(data, wights) + bias)
    else:
        pred = tensorflow.nn.softmax(tensorflow.matmul(data, wights) - bias) 

     

    • أعجبني 1
  8. أثناء محاولتي تنفيذ الجلسة:

    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

    يظهر الخطأ :

    InternalErrorTraceback (most recent call last)
    <ipython-input-9-a3261a02bdce> in <module>()
          1 batch_xs, batch_ys = mnist.train.next_batch(100)
    ----> 2 sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
    
    /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in run(self, fetches, feed_dict, options, run_metadata)
        338     try:
        339       result = self._run(None, fetches, feed_dict, options_ptr,
    --> 340                          run_metadata_ptr)
        341       if run_metadata:
        342         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
    
    /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _run(self, handle, fetches, feed_dict, options, run_metadata)
        562     try:
        563       results = self._do_run(handle, target_list, unique_fetches,
    --> 564                              feed_dict_string, options, run_metadata)
        565     finally:
        566       # The movers are no longer used. Delete them.
    
    /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
        635     if handle is None:
        636       return self._do_call(_run_fn, self._session, feed_dict, fetch_list,
    --> 637                            target_list, options, run_metadata)
        638     else:
        639       return self._do_call(_prun_fn, self._session, handle, feed_dict,
    
    /usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _do_call(self, fn, *args)
        657       # pylint: disable=protected-access
        658       raise errors._make_specific_exception(node_def, op, error_message,
    --> 659                                             e.code)
        660       # pylint: enable=protected-access
        661 
    
    InternalError: Blas SGEMM launch failed : a.shape=(100, 784), b.shape=(784, 10), m=100, n=10, k=784
         [[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](_recv_Placeholder_0/_4, Variable/read)]]
    Caused by op u'MatMul', defined at:
      File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
        "__main__", fname, loader, pkg_name)
      File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
        exec code in run_globals
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/__main__.py", line 3, in <module>
        app.launch_new_instance()
      File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 596, in launch_instance
        app.start()
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelapp.py", line 442, in start
        ioloop.IOLoop.instance().start()
      File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/ioloop.py", line 162, in start
        super(ZMQIOLoop, self).start()
      File "/usr/local/lib/python2.7/dist-packages/tornado/ioloop.py", line 883, in start
        handler_func(fd_obj, events)
      File "/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py", line 275, in null_wrapper
        return fn(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/zmqstream.py", line 440, in _handle_events
        self._handle_recv()
      File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/zmqstream.py", line 472, in _handle_recv
        self._run_callback(callback, msg)
      File "/usr/local/lib/python2.7/dist-packages/zmq/eventloop/zmqstream.py", line 414, in _run_callback
        callback(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py", line 275, in null_wrapper
        return fn(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py", line 276, in dispatcher
        return self.dispatch_shell(stream, msg)
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py", line 228, in dispatch_shell
        handler(stream, idents, msg)
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py", line 391, in execute_request
        user_expressions, allow_stdin)
      File "/usr/local/lib/python2.7/dist-packages/ipykernel/ipkernel.py", line 199, in do_execute
        shell.run_cell(code, store_history=store_history, silent=silent)
      File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2723, in run_cell
        interactivity=interactivity, compiler=compiler, result=result)
      File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2825, in run_ast_nodes
        if self.run_code(code, result):
      File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2885, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-4-d7414c4b6213>", line 4, in <module>
        y = tf.nn.softmax(tf.matmul(x, W) + b)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/math_ops.py", line 1036, in matmul
        name=name)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_math_ops.py", line 911, in _mat_mul
        transpose_b=transpose_b, name=name)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.py", line 655, in apply_op
        op_def=op_def)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2154, in create_op
        original_op=self._default_original_op, op_def=op_def)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1154, in __init__
        self._traceback = _extract_stack()

    ما الحل؟
     

  9. أثناء تعاملي مع  مع ال  placeholders في تنسرفلو، حصلت على الخطأ التالي:

    RuntimeError: tf.placeholderRuntimeError: tf.placeholder() is not compatible with eager execution

    وهو أمر  منطقي لأن العناصر النائبة placeholders غير قابلة للتنفيذ على الفور. لذا كيف نقوم بإيقاف ال eager execution؟
    << استخدم TF2>>

    • أعجبني 1
  10. لقد قمت بإعادة ضبط نموذج inception باستخدام مجموعة بيانات جديدة وحفظته كنموذج .h5. وهدفي الآن هو تشغيل النموذج الخاص بي على android Tensorflow الذي يقبل امتداد ".pb" فقط (protocol buffers). لذا هل هناك طريقة ما للقيام بهذا التحويل في كيراس أو تنسرفلو؟
     

  11. أحاول استيراد label_map_util من object_detection لكن يظهر لي الخطأ التالي:

    from object_detection.utils import ops as utils_ops
    from object_detection.utils import label_map_util
    from object_detection.utils import visualization_utils as vis_util
    ---------------------------------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-7-7035655b948a> in <module>
          1 from object_detection.utils import ops as utils_ops
    ----> 2 from object_detection.utils import label_map_util
          3 from object_detection.utils import visualization_utils as vis_util
    
    ~\AppData\Roaming\Python\Python37\site-packages\object_detection\utils\label_map_util.py in <module>
         25 import tensorflow as tf
         26 from google.protobuf import text_format
    ---> 27 from object_detection.protos import string_int_label_map_pb2
         28 
         29 
    ~\AppData\Roaming\Python\Python37\site-packages\object_detection\protos\string_int_label_map_pb2.py in <module>
         19   syntax='proto2',
         20   serialized_options=None,
    ---> 21   create_key=_descriptor._internal_create_key,
         22   serialized_pb=b'\n2object_detection/protos/string_int_label_map.proto\x12\x17object_detection.protos\"\xc0\x01\n\x15StringIntLabelMapItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12M\n\tkeypoints\x18\x04 \x03(\x0b\x32:.object_detection.protos.StringIntLabelMapItem.KeypointMap\x1a(\n\x0bKeypointMap\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\"Q\n\x11StringIntLabelMap\x12<\n\x04item\x18\x01 \x03(\x0b\x32..object_detection.protos.StringIntLabelMapItem'
         23 )
    AttributeError: module 'google.protobuf.descriptor' has no attribute '_internal_create_key'

     

    • أعجبني 1
  12. قمت ببناء نموذج في تنسرفلو وأريد طريقة يتم فيها حفظ الأوزان المقابلة لأفضل نتيجة حصلت عليها خلال التدريب، كيف يمكننا القيام بذلك في تنسرفلو؟ على سبيل المثال هنا حصلت على أفضل دقة للنموذج في ال epoch رقم 84. وأنا أريد أن يتم حفظ النموذج عند تلك النقطة.

    from sklearn.datasets import make_moons
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense
    from tensorflow.keras.callbacks import EarlyStopping
    from tensorflow.keras.callbacks import ModelCheckpoint
    from matplotlib import pyplot
    from tensorflow.keras.models import load_model
    # generate 2d classification dataset
    X, y = make_moons(n_samples=100, noise=0.2, random_state=1)
    # split into train and test
    n_train = 30
    trainX, testX = X[:n_train, :], X[n_train:, :]
    trainy, testy = y[:n_train], y[n_train:]
    # define model
    model = Sequential()
    model.add(Dense(500, input_dim=2, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    # fit model
    history = model.fit(trainX, trainy, validation_data=(testX, testy), epochs=100)
    # load the saved model
    saved_model = load_model('best_model.h5')
    # evaluate the model
    _, train_acc = saved_model.evaluate(trainX, trainy, verbose=0)
    _, test_acc = saved_model.evaluate(testX, testy, verbose=0)
    print('Train: %.3f, Test: %.3f' % (train_acc, test_acc))
    """
    Epoch 1/100
    1/1 [==============================] - 1s 849ms/step - loss: 0.7086 - accuracy: 0.1667 - val_loss: 0.6950 - val_accuracy: 0.4571
    Epoch 2/100
    1/1 [==============================] - 0s 51ms/step - loss: 0.6922 - accuracy: 0.6333 - val_loss: 0.6842 - val_accuracy: 0.6857
    Epoch 3/100
    1/1 [==============================] - 0s 56ms/step - loss: 0.6763 - accuracy: 0.8333 - val_loss: 0.6738 - val_accuracy: 0.7143
    ...
    .
    .
    Epoch 84/100
    1/1 [==============================] - 0s 28ms/step - loss: 0.2014 - accuracy: 0.9000 - val_loss: 0.4368 - val_accuracy: 0.7829
    """


     

    • أعجبني 1
×
×
  • أضف...