سلام
معمولا تنظیمات مربوط پیش پردازش اولیه که روی دیتاست اصلی انجام شده و مدل با اون اموزش دیده تغییر داده نمیشه چون "عموما" نتیجه بهتری میده نسبت به زمانی که از میانگین و std دیتاست مقصد استفاده بشه.
البته این رویه هرچند عمومیت داره ولی قرار نیست همیشه صادق باشه. شما همیشه میتونید تست کنید تا اگر این قائده در حالت شما صادق نیست بتونید بهره کافی رو ببرید.
چه چیزی رو تغییر بدید ؟ محاسبه میانگین و std ؟ میتونید خودتون کد بنویسید و محاسبه کنید مثلا مثل زیر :
db_train = lmdb.open('cifar10_train_lmdb')
db_train_txn = db_train.begin(write=True)
db_test = lmdb.open('cifar10_test_lmdb')
db_test_txn = db_test.begin(write=True)
datum = caffe_pb2.Datum()
size_train = 50000
size_test = 10000
data_train = np.zeros((size_train, 3, 32, 32))
label_train = np.zeros(size_train, dtype=int)
data_test = np.zeros((size_test, 3, 32, 32))
label_test = np.zeros(size_test, dtype=int)
print 'Reading training data...'
i = -1
for key, value in db_train_txn.cursor():
i = i + 1
if i % 1000 == 0:
print i
if i == size_train:
break
datum.ParseFromString(value)
label = datum.label
data = caffe.io.datum_to_array(datum)
data_train[i] = data
label_train[i] = label
print 'Reading test data...'
i = -1
for key, value in db_test_txn.cursor():
i = i + 1
if i % 1000 == 0:
print i
if i ==size_test:
break
datum.ParseFromString(value)
label = datum.label
data = caffe.io.datum_to_array(datum)
data_test[i] = data
label_test[i] = label
print( 'Computing statistics...')
mean = np.mean(data_train, axis=(0,2,3))
std = np.std(data_train, axis=(0,2,3))
print( mean, mean.shape)
print( std, std.shape)