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

Meezo ML

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

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

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

أجوبة بواسطة Meezo ML

  1. قمت بتحميل نموذج لي قمت بتدريبه مسبقاً  بعد أن كنت قد قمت بحفظ أوزانه، وعندما أحاول استخدمه لتوقع النتائج مع التابع predict فإنه يحسب لي الخرج بدون مشاكل لكن عند استخدام التابع evaluate يظهر لي هذا الخطأ:

    Model.evaluate(data,label)
    --------------------------------------
    You must compile a model before training/testing. Use `model.compile(optimizer, loss)

    ما المشكلة؟

  2. أقوم ببناء نموذج في كيراس لكن تظهر لي المشكلة التالية عندما أحاول تدريب النموذج:

    x = Input(shape=[1])
    e1 = Embedding(max_machine, 100)(x)
    in1 = Input(shape=[1])
    e2 = Embedding(max_windspeed, 100)(in)
    in2 = Input(shape=[1])
    e3 = Embedding(max_activepower, 100)(in2)
    in4 = Input(shape=[1])
    emb_pitchangle = Embedding(max_pitchangle, 100)(in4)
    in_genspeed = Input(shape=[1])
    emb_genspeed = Embedding(max_genspeed, 100)(in_genspeed)
    in_temp = Input(shape=[1])
    emb_temp = Embedding(max_temp, 100)(in_temp)
    in_turbine = Input(shape=[1])
    emb_turbine = Embedding(max_turbine, 100)(in_turbine)
    d = concatenate([
        (e1), 
        (in), 
        (e3), 
        (emb_pitchangle), 
        (emb_genspeed), 
        (emb_temp), 
        (emb_turbine)
    ])
    s_dout = SpatialDropout1D(0.3)(d)
    x = Flatten()(s_dout)
    x = Dropout(0.3)(Dense(1000,activation='tanh')(x))
    x = Dropout(0.3)(Dense(128,activation='tanh')(x))
    outp = Dense(1,activation='sigmoid')(x)
    model = Model(inputs=[in_machine, in1, in2, in_pitchangle,
        in_genspeed, in_temp, in_turbine], outputs=outp)
    ------------------------------------------------------------------------------------
    InvalidArgumentError: indices[19577,0] = -3 is not in [0, 2160)
         [[Node: embedding_50/GatherV2 = GatherV2[Taxis=DT_INT32, Tindices=DT_INT32, Tparams=DT_FLOAT, _class=["loc:@training_3/Adam/gradients/embedding_50/GatherV2_grad/Reshape"], _device="/job:localhost/replica:0/task:0/device:CPU:0"](embedding_50/embeddings/read, embedding_50/Cast, embedding_48/GatherV2/axis)]]

    ما المشكلة؟ علماً أن مدخلاتي تحوي قيماً سلبية.

  3. أحاول بناء نموذج في كيراس، لكن يظهر لي الخطأ التالي:

    from keras.datasets import imdb
    from keras import preprocessing
    max_features = 1000
    maxlen = 20
    (x_train, y_train), (x_test, y_test) = imdb.load_data(
    num_words=max_features)
    x_train = preprocessing.sequence.pad_sequences(x_train,maxlen=maxlen) 
    x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)
    from keras.models import Sequential
    from keras.layers import Flatten,Embedding
    model = Sequential()
    model =Sequential()
    model.add(Dense(16, activation='relu',input_shape=(20,)))
    model.add(Dense(16, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
    history = model.fit(x_train, y_train,
    epochs=3,
    batch_size=64,
    validation_split=0.2)
    ---------------------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-1-9e88e2e56b90> in <module>
         11 model = Sequential()
         12 model =Sequential()
    ---> 13 model.add(Dense(16, activation='relu',input_shape=(20,)))
         14 model.add(Dense(16, activation='relu'))
         15 model.add(Dense(1, activation='sigmoid'))
    
    NameError: name 'Dense' is not defined

     

  4. قمت ببناء النموذج التالي، لكن أتلقى رسالة الخطأ التالية، فما هي المشكلة:

    from keras.datasets import imdb
    from keras import preprocessing
    max_features = 1000
    (x_train, y_train), (x_test, y_test) = imdb.load_data(
    num_words=max_features)
    x_train = preprocessing.sequence.pad_sequences(x_train) 
    x_test = preprocessing.sequence.pad_sequences(x_test)
    from keras.models import Sequential
    from keras.layers import Flatten, Dense,Embedding
    model = Sequential()
    model.add(Embedding(1000, 8))
    model.add(Flatten())
    model.add(Dense(64, activation='tanh'))
    model.add(Dense(1, activation='sigmoid')) 
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
    history = model.fit(x_train, y_train,
    epochs=3,
    batch_size=64,
    validation_split=0.2)
    --------------------------------------------------------------------------------------------------
    ValueError: The last dimension of the inputs to `Dense` should be defined. Found `None`.

     

  5. قمت ببناء النموذج البسيط التالي، لكن بظهر لي الخطأ التالي:

    float validation_split = 2f;
    Sequential model = new Sequential();
    no_noise = no_noise.astype(np.float32);
    with_noise = with_noise.astype(np.float32);
    no_noise /= 255;
    with_noise /= 255;
    # بناء النموذج
    model.Add(new Conv2D(128, kernel_size: new Tuple<int, int>(5, 5), activation: "tanh",  input_shape: new Shape(45, 45,1)));
    model.Add(new Conv2D(64, kernel_size: new Tuple<int, int>(3, 3), activation: "tanh"));
    model.Add(new Conv2DTranspose(64, kernel_size : new Tuple<int,int> (3, 3), kernel_constraint : max_norm, activation: "tanh"));
    model.Add(new Conv2DTranspose(32, kernel_size : new Tuple<int,int> (3, 3), activation: "relu"));
    model.Add(new Conv2D(1, kernel_size : new Tuple<int,int>(3, 3), activation: "sigmoid", padding: "same"));
    model.Compile(optimizer: "rmsprop", loss: "binary_crossentropy");
    model.Fit(with_noise, no_noise,epochs: 10,batch_size: 140,steps_per_epoch:2,validation_split: validation_split);
    -------------------------------------------------------------------------------------------------------------------------
    UnboundLocalError : local variable 'logs' referenced before assignment

     

  6. قمت ببناء النموذج التالي في كيراس، في القسم 1 يتم تدريب الشبكة على جميع العينات في كل epoch وإعادة تعيين الحالة "reset the state" في الشبكة في نهاية كل epoch  يدوياً.

    #sequence إنشاء تسلسل
    length = 10
    s= [i/float(length) for i in range(length)]
    # إنشاء أزواج x/y
    df = DataFrame(s)
    df = concat([df, df.shift(1)], axis=1)
    df.dropna(inplace=True)
    val = df.values
    data = val[:, 0]
    label=val[:, 1]
    data = data.reshape(len(data), 1, 1)
    # القسم 0 
    n_batch = len(data)
    n_epoch = 800
    n_neurons = 12
    model = Sequential()
    model.add(LSTM(n_neurons, batch_input_shape=(n_batch, data.shape[1], data.shape[2]), stateful=True))
    model.add(Dense(1))
    model.compile(loss='mse', optimizer='rmsprop')
    # القسم 1
    for i in range(n_epoch):
    	model.fit(data, label, epochs=1, batch_size=n_batch, verbose=1, shuffle=False)
    	model.reset_states()
    # القسم 2
    for i in range(len(data)):
    	testX, testy = data[i], label[i]
    	testX = testX.reshape(1, 1, 1)
    	yhat = model.predict(testX, batch_size=1)
    	print('>Expected=%.1f, Predicted=%.1f' % (testy, yhat))

    لكن ينتج لدي الخطأ التالي في القسم 2: 'ValueError: Cannot feed value of shape (1, 1, 1) for Tensor 'lstm_1_input:0', which has shape '(9, 1, 1)
    علماً أن حجم ال batch_size كما تلاحظون  يغطي  مجموعة بيانات التدريب بالكامل (batch learning)  وسيتم تنفيذ التنبؤات واحدة تلو الأخرى (التنبؤ بخطوة واحدة)

  7. أنا أعمل على مصنف لتصنيف الأخبار على مجموعة بيانات راوترز باستخدام keras، ، لكن أتلقى الخطأ التالي:

    from keras.datasets import reuters
    (train_data, train_labels), (test_data, test_labels) = reuters.load_data(
    num_words=10000)
    word_index = reuters.get_word_index()
    reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])
    decoded_newswire = ' '.join([reverse_word_index.get(i - 3, '?') for i in
    train_data[0]])
    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)
    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(1, activation='softmax'))
    model.compile(optimizer='rmsprop',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy'])
    x_val = x_train[:1000]
    partial_x_train = x_train[1000:]
    y_val = train_labels[:1000]
    partial_y_train = train_labels[1000:]
    history = model.fit(partial_x_train,
    partial_y_train,
    epochs=20,
    batch_size=512,
    validation_data=(x_val, y_val))
    -----------------------------------------------------------------------------------------
    InvalidArgumentError                      Traceback (most recent call last)
    
    <ipython-input-23-2238d01185a1> in <module>()
          3 epochs=20,
          4 batch_size=512,
    ----> 5 validation_data=(x_val, y_val))
    
    6 frames
    
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
         58     ctx.ensure_initialized()
         59     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
    ---> 60                                         inputs, attrs, num_outputs)
         61   except core._NotOkStatusException as e:
         62     if name is not None:
    
    InvalidArgumentError:  Received a label value of 43 which is outside the valid range of [0, 1).

     

  8. قمت ببناء النموذج التالي لكن لا أفهم سبب المشكلة:

    # نموذج لتوقع أسعار الأسهم
    #  استخدم بيانات 50 يوماً للتنبؤ بسعر إغلاق اليوم 51
    import keras
    from keras.layers import Dense,LSTM
    import keras
    model = keras.Sequential()
    model.add( LSTM( 1024, input_shape=(50, 2), return_sequences=True))
    model.add( LSTM( 200, return_sequences=True))
    model.add( (Dense(1,activation=None)))
    model.compile(optimizer='rmsprop',loss='mae')
    model.fit( X, y, batch_size = 64,epochs=15)
    -------------------------------------------------------------------
    ValueError: Error when checking target: expected dense_1 to have 3 dimensions, but got array with shape (200, 1)

    بياناتي لها الشكل التالي:

    X_train:(200, 50, 2)
    y_train:(200, 1)

     

  9. قمت ببناء النموذج التالي في كيراس لكن أريد الحصول على خرج كل طبقة، كيف يمكنني القيام بذلك؟

    model = Sequential()
    model.add(Convolution2D(16, (3,3),
                            kernel_size[1],border_mode='valid',
                            input_shape=input_shape))
    model.add(Activation('tanh'))
    model.add(Convolution2D(16, (3,3), kernel_size[1]))
    model.add(Activation('tanh'))
    model.add(MaxPooling2D(pool_size=pool_size))
    model.add(Convolution2D(32, (3,3), kernel_size[1]))
    model.add(Activation('tanh'))
    model.add(Convolution2D(32, (3,3), kernel_size[1]))
    model.add(Activation('tanh'))
    model.add(MaxPooling2D(pool_size=pool_size))
    model.add(Flatten())
    model.add(Dense(4096))
    model.add(Activation('tanh'))
    model.add(Dropout(0.4))
    model.add(Dense(1))
    model.add(Activation('sigmoid'))
    model.compile(loss='binary_crossentropy',
                  optimizer='adam',
                  metrics=['acc'])
    model.fit(x, y,
              batch_size=batch_size,
              nb_epoch=20,
              validation_data=(data, label))

     

  10. ظهور الخطأ ImportError: cannot import name 'set_random_seed' from 'tensorflow' (C:\Users\polon\Anaconda3\lib\site-packages\tensorflow\__init__.py)  في keras وtensorflow مع set_random_seed:

    ImportError                               Traceback (most recent call last)
    <ipython-input-18-c29f17706012> in <module>
    ----> 1 from tensorflow import set_random_seed
          2 import matplotlib.pyplot as plt
          3 import tensorflow
          4 import keras
    ImportError: cannot import name 'set_random_seed' from 'tensorflow' (C:\Users\polon\Anaconda3\lib\site-packages\tensorflow\__init__.py)

     

  11. لدي مهمة تصنيف متعدد ل 10 أصناف، لذا قمت ببناء نموذج اعتماداً على معمارية MobileNet في keras، لكن تظهر لي المشكلة التالية عندما أحاول إضافة طبقة جديدة:

    z=mobile.layers[-6].output
    z=Flatten(z)
    pred = Dense(1, activation='sigmoid')(z)
    mymodel = Model(inputs=mobile.input, outputs=pred)
    -----------------------------------------------------------
    'Tensor' object has no attribute 'lower'

     

  12. قمت ببناء عدة نماذج و ليس لدي أي مشاكل في تشغيل أي من نماذجي. لكن عندما أحاول رسم المنحنيات لنماذجي أحصل على خطأ في الجزء التالي من الكود :

    plt.plot(model1.history['val_loss'], 'r', model2.history['val_loss'], 'b', 
    model3.history['val_loss'], 'g')
    plt.xlabel('Epochs')
    plt.ylabel('Validation score')
    plt.show()
    ----------------------------------------------------------------------------------
    TypeError: 'History' object is not subscriptable

    وهذا هو الجزء الخاص بالتدريب:

    model1.fit(data, label, validation_split=0.2, epochs=13)
    model2.fit(data, label, validation_split=0.2, epochs=13)
    model3.fit(data, label, validation_split=0.2, epochs=13)

    ما الحل؟

  13. قمت ببناء نموذج  multilayer perceptron وهذه هي طبقاتي:

    ____________________________________________________________________________________________________
    Layer (type)                     Output Shape          Param #     Connected to
    ====================================================================================================
    dense_1 (Dense)                  (None, 20)            4020        dense_input_1[0][0]
    ____________________________________________________________________________________________________
    dense_2 (Dense)                  (None, 2)             42          dense_1[0][0]
    ====================================================================================================

    لكن يظهر لي الخطأ التالي، عندما أحاول تدريب النموذج:

    model.fit(data,label,epochs=70)
    -------------------------------------------------------
    Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 1 arrays but instead got the following list of 10000 arrays:

    علماً أنني ال  input_shape=(200,) وأبضاُ ال data عبارة عن list من العينات وكل عينة عبارة عن 200 عنصر.
     

×
×
  • أضف...