به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

سلام
شبکه طراحی کردم و هربار که ران می گیرم زمان متفاوت و مقادیر متفاوتی از پاسخ ها(دقت) دریافت می کنم !!! آیا این درسته ؟!! دلیلش چی می تونه باشه ؟! در ضمن وقتی سیستم رو بعد از چندبار اجرا ریست می کنم و دوباره اجرا می گیرم زمان کمتری برای اجرای دوباره می گیره چرا ؟؟!!1

توسط (219 امتیاز)
ویرایش شده توسط

2 پاسخ

0 امتیاز

سلام
بعد از فاینال شدن شبکه برای هر ورودی خاص بایستی همیشه یک جواب مشخص رو بگیرید.
اگه اینطور نباشه پس سیستم شما تغییر پذیر با زمان هستش!! - شبکه های عصبی که المانی تغییر پذیر با زمان ندارند! شاید یه جایی در شبکه یه عدد رندمی تولید میشه و کارو خراب میکنه.
شبکه رو فریز کنید و دوباره تست بگیرید - اینجوری دیگه حتما باید یکسان باشند

در مورد زمان اجرا به میزان مشغول بودن رم و سی-پی-یو بستگی داره وقتی ریست میکنید رو و سی-پی-یو سرشون خلتوت میشه و شما میتونید با شبکه دیپ حسابی سرشون رو شلوغ کنید - (مراقب باشید اگه خیلی از لب تاپ تون کار بکشید و خنک کننده نداشته باشید مثل لبتاپ بنده تعطیل میشه! )
موفق باشید

توسط (830 امتیاز)
مثلا کد زیر را هر بار که ران می کنم جوابها فرق می کنه ولی در ظاهر المان تغییرپذیر نداره!!!!!۱
# comparison of training-set based pixel scaling methods on MNIST
from numpy import mean
from numpy import std
from matplotlib import pyplot
from keras.datasets import mnist
from keras.utils import to_categorical
from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Dense
from keras.layers import Flatten
from timeit import default_timer as timer
from keras import backend as K
import tensorflow as tf
K.tensorflow_backend._get_available_gpus()


# load train and test dataset
def load_dataset():
    # load dataset
    (trainX, trainY), (testX, testY) = mnist.load_data()
    # reshape dataset to have a single channel
    width, height, channels = trainX.shape[1], trainX.shape[2], 1
    trainX = trainX.reshape((trainX.shape[0], width, height, channels))
    testX = testX.reshape((testX.shape[0], width, height, channels))
    # one hot encode target values
    trainY = to_categorical(trainY)
    testY = to_categorical(testY)
    return trainX, trainY, testX, testY


# define cnn model
def define_model():
    model = Sequential()
    model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
    model.add(MaxPooling2D((2, 2)))
    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2)))
    model.add(Flatten())
    model.add(Dense(64, activation='relu'))
    model.add(Dense(10, activation='softmax'))
    # compile model
    model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
    return model


# normalize images
def prep_normalize(train, test):
    # convert from integers to floats
    train_norm = train.astype('float32')
    test_norm = test.astype('float32')
    # normalize to range 0-1
    train_norm = train_norm / 255.0
    test_norm = test_norm / 255.0
    # return normalized images
    return train_norm, test_norm


# center images
def prep_center(train, test):
    # convert from integers to floats
    train_cent = train.astype('float32')
    test_cent = test.astype('float32')
    # calculate statistics
    m = train_cent.mean()
    # center datasets
    train_cent = train_cent - m
    test_cent = test_cent - m
    # return normalized images
    return train_cent, test_cent


# standardize images
def prep_standardize(train, test):
    # convert from integers to floats
    train_stan = train.astype('float32')
    test_stan = test.astype('float32')
    # calculate statistics
    m = train_stan.mean()
    s = train_stan.std()
    # center datasets
    train_stan = (train_stan - m) / s
    test_stan = (test_stan - m) / s
    # return normalized images
    return train_stan, test_stan


# repeated evaluation of model with data prep scheme
def repeated_evaluation(datapre_func, n_repeats=5):
    # prepare data
    trainX, trainY, testX, testY = load_dataset()
    # repeated evaluation
    scores = list()
    for i in range(n_repeats):
        # define model
        model = define_model()
        # prepare data
        #prep_trainX, prep_testX = datapre_func(trainX, testX)
        # fit model
        model.fit(trainX, trainY, epochs=20, batch_size=32, verbose=0)
        # evaluate model
        _, acc = model.evaluate(testX, testY, verbose=0)
        # store result
        scores.append(acc)
        print('> %d: %.3f' % (i, acc * 100.0))
    return scores

start = timer()
all_scores = list()

scores = repeated_evaluation(define_model())

all_scores.append(scores)
end = timer()
print(end - start)
سلام
شما هر سری دارید شبکه رو دوباره آموزش میدید. احتمال خیلی خیلی خیلی ... خیلی زیاد هر سری باید جواب های متفاوت بگیرید. چون هر بار حالت اولیه وزن ها که بصورت تصادفی انتخاب میشن با هم فرق دارند.


تو لوپ زیر
for i in range(n_repeats):
هر بار دارید مدل رو دوباره فیت میکنید.  

موفق باشد.
سلام
مگه این خوب نیست !!!‌مگه این نیست که هرچه قدر مدل رو بیشتر آموزش بدیم جواب دقیق تری می گیریم؟؟؟!!!
چه جوری می تونم درستش کنم . اگه تعداد تکرار رو برابر 1 در نظر بگیرم دقت کم می شه . راه حل چیه که هم دقت خوب باشه هم جواب ثابت ?!
شما هر سری دارید از اول شروع میکنید به آموزش! - وزن ها رو برای هر بار آموزش ذخیره کنید و دو باره در مدل لود کنید.
هر چقدر بیشتر آموزش بدی جواب دقیقتر میشه ولی تا جایی که مدل overfit  نشده باشه.
0 امتیاز

سلام،
منم به همین مسئله برخوردم، این لینک راهنمای خوبی برام بود:
Why running the same code on the same data gives a different result every time?
شاید برای شما هم مفید باشه.
موفق باشید

توسط (100 امتیاز)
...