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

Chollet ML

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

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

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

كل منشورات العضو Chollet ML

  1. عند التعامل مع TensorFlow فإنه يقوم بشكل افتراضي بتخصيص كامل طاقة ال GPU المتاحة، حتى لو كانت الشبكة العصبية صغيرة جداً، فمثلاً أنا لدي GPU ب 8 جيجابايت، لكن لا أريد أن يتم تخصيصها كاملةً لمهمة واحدة (تدريب شبكة واحدة) هل أستطيع تخصيص حجم معين فقط لمهمة معينة؟
  2. استخدم تنسرفلو لتدريب نموذج لكن لم أفهم بدقة ماذا تعني ال epoch، من المعروف أن ال iteration هو عملية forward و backward على البيانات (مرور على البيانات ثم تحديث قيم الأوزان في الشبكة)، لكن ماهو ال epoch ؟ ولماذا لانستخدم مصطلح ال iteration؟ Epoch 1/5 105/938 [==>...........................] - ETA: 51s - loss: 0.6753 - acc: 0.7948
  3. في التوثيق الخاص بالدالة softmax في تنسرفلو يتم تعريف الدالة بالشكل التالي : tf.nn.softmax( logits, axis=None, name=None ) # أيضاً هناك دالة أخرى معرفة بالشكل التالي tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) ما المقصود بال logits وما الفرق بين الدالتين السابقتين؟
  4. كيف يمكننا معرفة نسخة تنسرفلو الحالية TensorFlow Version؟
  5. أحاول تثبيت تنسرفلو باستخدام pip، لكن يظهر لي هذا الخطأ، مالحل؟ $ pip install tensorflow --user Collecting tensorflow Could not find a version that satisfies the requirement tensorflow (from versions: ) No matching distribution found for tensorflow
  6. أثناء عملي على تنسرفلو tensorflow-1.4.0 قمت ببناء الكود التالي، لكن يظهر لي هذا التحذير، ما المشكلة؟ import tensorflow tens = tensorflow.constant('Hello, TensorFlow!') sess = tensorflow.Session() sess.run(tens) 'Hello, TensorFlow!' sess.run(tensorflow.constant(4) +tensorflow.constant(5)) # 9 sess.close() ---------------------------------- 2017-11-02 01:56:21.698935: I C:\tf_jenkins\home\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
  7. قمت ببناء النموذج التالي في كيراس لكن يظهر لي الخطأ التالي: from keras.datasets import reuters import keras import tensorflow as tf (train_data, train_labels), (test_data, test_labels) = reuters.load_data( num_words=10000) import numpy as np def vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences): results[i, sequence] = 1. return results x_train = vectorize_sequences(train_data) x_test = vectorize_sequences(test_data) from keras.utils.np_utils import to_categorical one_hot_train_labels = to_categorical(train_labels) one_hot_test_labels = to_categorical(test_labels) x_val = x_train[:1000] partial_x_train = x_train[1000:] # هنا y_val = one_hot_train_labels[:1000] partial_y_train = one_hot_train_labels[1000:] # الآن: partial_x_train.shape # (7982, 10000) partial_y_train.shape # (7982, 46) from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(1000,))) model.add(keras.layers.LayerNormalization()) model.add(layers.Dense(64, activation='relu')) model.add(keras.layers.LayerNormalization()) model.add(layers.Dense(46, activation='softmax')) model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['CategoricalAccuracy']) history = model.fit(tf.convert_to_tensor(partial_x_train, np.float32), partial_y_train, epochs=6, batch_size=512, validation_data=(x_val, y_val)) ---------------------------------------------------------- ValueError: Input 0 of layer sequential_7 is incompatible with the layer: expected axis -1 of input shape to have value 1000 but received input with shape (None, 10000)
  8. قمت ببناء نموذج لتصنيف الأخبار على بيانات راوترز، لكن يظهر لي الخطأ التالي عند محاولة تدريب نموذجي؟ from keras.datasets import reuters import keras import tensorflow as tf (train_data, train_labels), (test_data, test_labels) = reuters.load_data( num_words=10000) import numpy as np def vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences): results[i, sequence] = 1. return results x_train = vectorize_sequences(train_data) x_test = vectorize_sequences(test_data) from keras.utils.np_utils import to_categorical one_hot_train_labels = to_categorical(train_labels) one_hot_test_labels = to_categorical(test_labels) x_val = x_train[:1000] partial_x_train = x_train[1000:] from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(10000,))) model.add(keras.layers.LayerNormalization()) model.add(layers.Dense(64, activation='relu')) model.add(keras.layers.LayerNormalization()) model.add(layers.Dense(46, activation='softmax')) model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['CategoricalAccuracy']) #fit تدريب النموذج من خلال الدالة history = model.fit(tf.convert_to_tensor(partial_x_train, np.float32), one_hot_train_labels, epochs=6, batch_size=512, validation_data=(x_val, one_hot_test_labels),max_queue_size=10) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-2-b9508248cdf2> in <module>() 34 epochs=6, 35 batch_size=512, ---> 36 validation_data=(x_val, one_hot_test_labels),max_queue_size=10) 4 frames /usr/local/lib/python3.7/dist-packages/keras/engine/data_adapter.py in _check_data_cardinality(data) 1647 label, ", ".join(str(i.shape[0]) for i in tf.nest.flatten(single_data))) 1648 msg += "Make sure all arrays contain the same number of samples." -> 1649 raise ValueError(msg) 1650 1651 ValueError: Data cardinality is ambiguous: x sizes: 7982 y sizes: 8982 Make sure all arrays contain the same number of samples. ما المشكلة وما السبب؟ وما هو الحل؟
  9. ماذا تفعل الدالة fit في كيراس Keras وكيف نستخدمها؟
  10. ما الفرق بين تمرير دالة التنشيط كوسيط كما في المثال التالي : from tensorflow.keras import layers model.add(layers.Dense(64, activation='relu')) أو استخدامها كطبقة Activation مستقلة: from tensorflow.keras import layers from tensorflow.keras import activations model.add(layers.Dense(64)) model.add(layers.Activation(activations.relu))
  11. أقوم ببناء نموذج لتصنيف الأرقام المكتوبة بخط اليد اعتماداً على مجموعة بيانات MINST لكن لا أعلم سبب ظهور الخطأ التالي عندما أحاول تدريب النموذج: from tensorflow.keras.layers import Conv2D,MaxPooling2D from keras.datasets import mnist from tensorflow.keras.models import Sequential import keras from keras.layers import Dense, Dropout, Flatten model = Sequential() model.add(Conv2D(30,(3,3),padding="valid",kernel_initializer="glorot_uniform", activation="tanh", input_shape=(28, 28, 1) )) model.add(Conv2D(30,(3,3), activation="tanh")) model.add(MaxPooling2D((2,2)) model.add(Dropout(0.4)) model.add(Flatten()) model.add(Dense(100, activation='relu')) model.add(Dropout(0.4)) model.add(Dense(10, activation='softmax')) ----------------------------------------------------------------------------------------------- TypeError: The added layer must be an instance of class Layer. Found: <keras.layers.core.Dropout object at 0x000001622999A5F8>
  12. ما هي فكرة ال Layer Normalization وكيف نستخدمها في كيراس؟
  13. ما هو الفرق بين val_acc و acc، فأثناء قراءتي لإحدى النماذج رأيتهم لكن لم أفهم سبب وجود val_acc؟ Epoch 5/200 727722/727722 [==============================] - 50s - loss: 0.3167 - acc: 0.9557 - val_loss: 0.5473 - val_acc: 0.7455 Epoch 6/200 727722/727722 [==============================] - 50s - loss: 0.3152 - acc: 0.9573 - val_loss: 0.5497 - val_acc: 0.7404 Epoch 6/200 727722/727722 [==============================] - 60s - loss: 0.3136 - acc: 0.9581 - val_loss: 0.6518 - val_acc: 0.7001
  14. أتتبع دورة تعليمية، في كيراس، لكن عند محاولتي تطبيق ذلك ظهر لي الخطأ التالي: from keras.layers import Conv2D, MaxPooling2D,Dense, Dropout, Activation, Flatten from keras.models import Sequential from keras.preprocessing.image import ImageDataGenerator --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-13-3a12c6f32fcf> in <module>() ----> 1 from keras.layers import Conv2D, MaxPooling2D,Dense, Dropout, Activation, Flatten ImportError: cannot import name Conv2D
  15. قمت بتثبيت بيئة أناكوندا Anaconda 4.4.1 وأحاول تنفيذ نموذج في كيراس على جوبيتر لكن يظهر لي الخطأ التالي عند محاولة استيرادها: import keras ----------------------------------------------------- Traceback (most recent call last): File "<ipython-input-3-c74e2bd4ca71>", line 1, in <module> ImportError: No module named 'keras'
  16. ماهي دالة التنشيط selu وكيف نقوم باستخدامها في كيراس Keras؟
  17. قمت ببناء النموذج التالي لتصنيف حالة السائق (مستيقظ/ نائم)، حيث أريد تدريبه على صور أبعادها 100*100، لكن عندما أحاول تدريبه يظهر لي الخطأ التالي: img = cv2.imread(r"C:\Users\Windows.10\Desktop\Safedrive\safe\train\ClosedFace\closed_eye_0509.jpg_face_1.jpg") print(img.shape) # (100, 100, 3) # dimensions of our images. img_width, img_height = 100, 100 train_data_dir = r'C:\Users\Windows.10\Desktop\Safedrive\safe\train' validation_data_dir = r'C:\Users\Windows.10\Desktop\Safedrive\safe\val' batch_size=16 train_datagen = ImageDataGenerator( rescale=1. / 255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) train_generator = train_datagen.flow_from_directory( train_data_dir, target_size=(img_width, img_height), batch_size=batch_size, class_mode='binary') # validation data val_datagen = ImageDataGenerator(rescale=1. / 255) validation_generator = val_datagen.flow_from_directory( validation_data_dir, target_size=(img_width, img_height), batch_size=batch_size, class_mode='binary') print(train_generator.class_indices) from keras.layers import BatchNormalization def Model(): #Instantiation model = Sequential() #1st Convolutional Layer model.add(Conv2D(64, (3, 3), input_shape=(3,100,100))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) #2nd Convolutional Layer model.add(Conv2D(64, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) #3rd Convolutional Layer model.add(Conv2D(128, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) #Passing it to a Fully Connected layer model.add(Flatten()) # 1st Fully Connected Layer model.add(Dense(124)) model.add(Activation('relu')) # Add Dropout to prevent overfitting model.add(Dropout(0.5)) #Output Layer model.add(Dense(1)) model.add(Activation('sigmoid')) #Compiling model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # View model layers #model.summary() return model # Fitting model=Model() epochs=2 model.fit_generator( train_generator, steps_per_epoch=nb_train_samples // batch_size, epochs=epochs, validation_data=validation_generator, validation_steps=nb_validation_samples // batch_size) ------------------------------------------------------------------------------------- ValueError: Negative dimension size caused by subtracting 2 from 1 for '{{node max_pooling2d_9/MaxPool}} = MaxPool[T=DT_FLOAT, data_format="NHWC", explicit_paddings=[], ksize=[1, 2, 2, 1], padding="VALID", strides=[1, 2, 2, 1]](Placeholder)' with input shapes: [?,1,98,64]. ما المشكلة؟وما الحل؟
  18. ماهي دالة التنشيط elu وكيف نقوم باستخدامها في كيراس Keras؟
  19. قمت ببناء النموذج التالي، لكن لم أفهم سبب الخطأ؟ حيث بعد أن دربته قمت بحفظه ثم قمت بإعادة تحميله و تنفيذ compile له. علماً أنني أتعامل مع مجموعة بيانات MINST الشهيرة. K.set_image_dim_ordering('th') numpy.random.seed(7) from keras.datasets import mnist # تحميل البيانات (X_train, y_train), (X_test, y_test) = mnist.load_data() # تحضير البيانات X_train = X_train.reshape(X_train.shape[0], 1, 28, 28) X_test = X_test.reshape(X_test.shape[0], 1, 28, 28) X_train=X_train.astype('float32')/ 255.0 X_test=X_test.astype('float32')/ 255.0 #label ترميز ال y_train = np_utils.to_categorical(y_train) y_test = np_utils.to_categorical(y_test) model = Sequential() model.add(Convolution2D(32, 3, 3, input_shape=(1, 28, 28), activation='tanh')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Convolution2D(16, 3, 3, activation='tanh')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.4)) model.add(Flatten()) model.add(Dense(100, activation='tanh')) model.add(Dense(y_test.shape[1], activation='softmax')) # تجميع المعلومات model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['acc']) # بناء النموذج model = larger_model() # تدريبه model.fit(X_train, y_train, epochs=12, batch_size=128,validation_data=(X_test, y_test)) # تقييم النموذج scores = model.evaluate(X_test, y_test) print("Baseline Error: %.2f%%" % (100-scores[1]*100)) # حفظه model_json = model.to_json() with open('mnist_model.json', 'w') as f: f.write(model_json) model.save_weights("mnist_weights.h5") # تحميله with open('mnist_model.json') as f: model_json = f.read() model = model_from_json(model_json) model.load_weights('mnist_weights.h5') # تجميع المعلومات model.compile(loss='sparse_categorical_crossentropy', optimizer='rmsprop', metrics=['acc']) scores = model.evaluate(X_test, y_test) print("Baseline Error: %.2f%%" % (100-scores[1]*100))
  20. أريد توضيح لدالة التنشيط softsign وكيف نستخدمها في كيراس Keras؟
  21. قمت ببناء النموذج التالي، لكن عندما أحاول أن أقوم بتدريبه يظهر لي الخطأ التالي: from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data( num_words=100) # تررميز البيانات import numpy as np def vectorize_sequences(sequences, dimension=100): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences): results[i, sequence] = 1. return results x_train = vectorize_sequences(train_data) x_test = vectorize_sequences(test_data) from keras.utils.np_utils import to_categorical one_hot_train_labels = to_categorical(train_labels) one_hot_test_labels = to_categorical(test_labels) # بناء النموذج from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(100,))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(46, activation='softmax')) # التجميع model.compile(optimizer='rmsprop', loss='SparseCategoricalCrossentropy', metrics=['CategoricalAccuracy']) # التدريب history = model.fit(x_train, one_hot_train_labels, epochs=10, batch_size=512) model.save("model.h5") --------------------------------------------------------------------------- InvalidArgumentError: logits and labels must have the same first dimension, got logits shape [512,46] and labels shape [23552] [[node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits (defined at <ipython-input-10-de26530fc6fc>:31) ]] [Op:__inference_train_function_3812] Function call stack: train_function
  22. ماهي دالة التنشيط softplus في كيراس Keras وكيف نستخدمها؟ وما هو الفرق بينها وبين دوال التنشيط الأخرى؟
  23. قمت ببناء النموذج التالي في كيراس لتصنيف الأخبار لكن يظهر لي الخطأ التالي: from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data( num_words=10000) # تررميز البيانات import numpy as np def vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences): results[i, sequence] = 1. return results x_train = vectorize_sequences(train_data) x_test = vectorize_sequences(test_data) from keras.utils.np_utils import to_categorical one_hot_train_labels = to_categorical(train_labels) one_hot_test_labels = to_categorical(test_labels) x_val = x_train[:1000] partial_x_train = x_train[1000:] y_val = one_hot_train_labels[:1000] partial_y_train = one_hot_train_labels[1000:] # بناء النموذج from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(10000,))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(46, activation='softmax')) history = model.fit(partial_x_train, partial_y_train, epochs=6, batch_size=512, validation_data=(x_val, y_val)) --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) <ipython-input-3-4d4f3289469d> in <module>() 3 epochs=6, 4 batch_size=512, ----> 5 validation_data=(x_val, y_val)) 1 frames /usr/local/lib/python3.7/dist-packages/keras/engine/training.py in _assert_compile_was_called(self) 2666 # (i.e. whether the model is built and its inputs/outputs are set). 2667 if not self._is_compiled: -> 2668 raise RuntimeError('You must compile your model before ' 2669 'training/testing. ' 2670 'Use `model.compile(optimizer, loss)`.') RuntimeError: You must compile your model before training/testing. Use `model.compile(optimizer, loss)`. ما المشكلة؟
  24. ماهي فكرة ال BatchNormalization وكيف نقوم بتطبيقها في كيراس Keras؟
  25. أحاول حفظ معلومات التدريب training history (نتائج ال loss وال accuracy خلال عملية التدريب بعد كل epoch) لكن يظهر لي الخطأ التالي: # تحميل الداتا from keras.datasets import boston_housing import keras (train_data, train_targets), (test_data, test_targets) = boston_housing.load_data() # توحيد البيانات mean = train_data.mean(axis=0) train_data -= mean std = train_data.std(axis=0) train_data /= std test_data -= mean test_data /= std from keras import models from keras import layers # بناء النموذج def build_model(): model = models.Sequential() model.add(layers.Dense(64, activation='relu', input_shape=(train_data.shape[1],))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(1)) model.compile(optimizer='rmsprop', loss="mae", metrics=['mae']) return model # تدريب النموذج model = build_model() # قمنا بتدريب النموذج history=model.fit(train_data, train_targets,epochs=2, batch_size=64) import pickle with open('/f', 'wb') as f: pickle.dump(history, f) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-25-87b712a3ea34> in <module>() 1 import pickle 2 with open('/HistoryDict', 'wb') as f: ----> 3 pickle.dump(history, f) TypeError: can't pickle weakref objects
×
×
  • أضف...