ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

´ó¹æÄ£Êý¾Ý¼¯³£ÓõÄͼÏñÔöÇ¿·½·¨ÓÐÄÄЩ£¿

¸üÐÂʱ¼ä:2022Äê08ÔÂ12ÈÕ14ʱ05·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

´ó¹æÄ£Êý¾Ý¼¯Êdzɹ¦Ó¦ÓÃÉî¶ÈÉñ¾­ÍøÂçµÄǰÌá¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔ¶ÔͼÏñ½øÐв»Í¬·½Ê½µÄ²Ã¼ô£¬Ê¹¸ÐÐËȤµÄÎïÌå³öÏÖÔÚ²»Í¬Î»Ö㬴Ӷø¼õÇáÄ£ÐͶÔÎïÌå³öÏÖλÖõÄÒÀÀµÐÔ¡£ÎÒÃÇÒ²¿ÉÒÔµ÷ÕûÁÁ¶È¡¢É«²ÊµÈÒòËØÀ´½µµÍÄ£ÐͶÔÉ«²ÊµÄÃô¸Ð¶È¡£¿ÉÒÔ˵£¬ÔÚµ±ÄêAlexNetµÄ³É¹¦ÖУ¬Í¼ÏñÔöÇ¿¼¼Êõ¹¦²»¿Éû¡£

³£ÓõÄͼÏñÔöÇ¿·½·¨

ͼÏñÔöÇ¿(image augmentation)ָͨ¹ý¼ôÇС¢Ðýת/·´Éä/·­×ª±ä»»¡¢Ëõ·Å±ä»»¡¢Æ½ÒƱ任¡¢³ß¶È±ä»»¡¢¶Ô±È¶È±ä»»¡¢ÔëÉùÈŶ¯¡¢ÑÕÉ«±ä»»µÈÒ»ÖÖ»ò¶àÖÖ×éºÏÊý¾ÝÔöÇ¿±ä»»µÄ·½Ê½À´Ôö¼ÓÊý¾Ý¼¯µÄ´óС¡£Í¼ÏñÔöÇ¿µÄÒâÒåÊÇͨ¹ý¶ÔѵÁ·Í¼Ïñ×öһϵÁÐËæ»ú¸Ä±ä£¬À´²úÉúÏàËÆµ«ÓÖ²»Í¬µÄѵÁ·Ñù±¾£¬´Ó¶øÀ©´óѵÁ·Êý¾Ý¼¯µÄ¹æÄ££¬¶øÇÒËæ»ú¸Ä±äѵÁ·Ñù±¾¿ÉÒÔ½µµÍÄ£ÐͶÔijЩÊôÐÔµÄÒÀÀµ£¬´Ó¶øÌá¸ßÄ£Ð͵ķº»¯ÄÜÁ¦¡£

³£¼ûµÄͼÏñÔöÇ¿·½Ê½¿ÉÒÔ·ÖΪÁ½Àࣺ¼¸ºÎ±ä»»ÀàºÍÑÕÉ«±ä»»Àà

¼¸ºÎ±ä»»À࣬Ö÷ÒªÊǶÔͼÏñ½øÐм¸ºÎ±ä»»²Ù×÷£¬°üÀ¨·­×ª£¬Ðýת£¬²Ã¼ô£¬±äÐΣ¬Ëõ·ÅµÈ¡£

¼¸ºÎ±ä»»ÀàͼÏñÔöÇ¿

ÑÕÉ«±ä»»Àָ࣬ͨ¹ýÄ£ºý¡¢ÑÕÉ«±ä»»¡¢²Á³ý¡¢Ìî³äµÈ·½Ê½¶ÔͼÏñ½øÐд¦Àí¡£

ÑÕÉ«±ä»»Àà

ʵÏÖͼÏñÔöÇ¿¿ÉÒÔͨ¹ýtf.imageÀ´Íê³É£¬Ò²¿ÉÒÔͨ¹ýtf.keras.imageGeneratorÀ´Íê³É¡£

tf.image½øÐÐͼÏñÔöÇ¿

µ¼ÈëËùÐèµÄ¹¤¾ß°ü²¢¶ÁȡҪ´¦ÀíµÄͼÏñ£º

# µ¼È빤¾ß°ü
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
# ¶ÁȡͼÏñ²¢ÏÔʾ
cat = plt.imread('./cat.jpg')
plt.imshow(cat)

·­×ªºÍ²Ã¼ô

×óÓÒ·­×ªÍ¼ÏñÊÇ×îÔçÒ²ÊÇ×î¹ã·ºÊ¹ÓõÄÒ»ÖÖͼÏñÔö¹ã·½·¨¡£¿ÉÒÔͨ¹ýtf.image.random_flip_left_rightÀ´ÊµÏÖͼÏñ×óÓÒ·­×ª¡£

# ×óÓÒ·­×ª²¢ÏÔʾ
cat1 = tf.image.random_flip_left_right(cat)plt.imshow(cat1£©
ÕýÏò

´´½¨tf.image.random_flip_up_downʵÀýÀ´ÊµÏÖͼÏñµÄÉÏÏ·­×ª£¬ÉÏÏ·­×ªÊ¹ÓõĽÏÉÙ¡£

# ÉÏÏ·­×ª
cat2 = tf.image.random_flip_up_down(cat)plt.imshow(cat2)
ÉÏÏ·­×ª

Ëæ»ú²Ã¼ô³öÒ»¿éÃæ»ýÎªÔ­Ãæ»ý10%∼100%10%∼100%µÄÇøÓò£¬ÇÒ¸ÃÇøÓòµÄ¿íºÍ¸ßÖ®±ÈËæ»úÈ¡×Ô0.5∼20.5∼2£¬È»ºóÔÙ½«¸ÃÇøÓòµÄ¿íºÍ¸ß·Ö±ðËõ·Åµ½200ÏñËØ¡£

# Ëæ»ú²Ã¼ô
cat3 = tf.image.random_crop(cat,(200,200,3))
plt.imshow(cat3)
Ëæ»ú²Ã¼ô

ÑÕÉ«±ä»»

ÁíÒ»ÀàÔö¹ã·½·¨ÊÇÑÕÉ«±ä»»¡£ÎÒÃÇ¿ÉÒÔ´Ó4¸ö·½Ãæ¸Ä±äͼÏñµÄÑÕÉ«£ºÁÁ¶È¡¢¶Ô±È¶È¡¢±¥ºÍ¶ÈºÍÉ«µ÷¡£½ÓÏÂÀ´½«Í¼ÏñµÄÁÁ¶ÈËæ»ú±ä»¯ÎªÔ­Í¼ÁÁ¶ÈµÄ50%50%(¼´1−0.51−0.5)∼150%∼150%(¼´1+0.51+0.5)¡£

cat4=tf.image.random_brightness(cat,0.5) 
plt.imshow(cat4)
ÑÕÉ«±ä»»

ÀàËÆµØ£¬ÎÒÃÇÒ²¿ÉÒÔËæ»ú±ä»¯Í¼ÏñµÄÉ«µ÷:

cat5 = tf.image.random_hue(cat,0.5)
plt.imshow(cat5)
Ëæ»ú±ä»¯É«µ÷

ʹÓÃImageDataGenerator()½øÐÐͼÏñÔöÇ¿

ImageDataGenerator()ÊÇkeras.preprocessing.imageÄ£¿éÖеÄͼƬÉú³ÉÆ÷£¬¿ÉÒÔÔÚbatchÖжÔÊý¾Ý½øÐÐÔöÇ¿£¬À©³äÊý¾Ý¼¯´óС£¬ÔöǿģÐ͵ķº»¯ÄÜÁ¦¡£±ÈÈçÐýת£¬±äÐεÈ£¬ÈçÏÂËùʾ£º

keras.preprocessing.image.ImageDataGenerator(
               rotation_range=0, #ÕûÊý¡£Ëæ»úÐýתµÄ¶ÈÊý·¶Î§¡£
               width_shift_range=0.0, #¸¡µãÊý¡¢¿í¶ÈÆ½ÒÆ
               height_shift_range=0.0, #¸¡µãÊý¡¢¸ß¶ÈÆ½ÒÆ
               brightness_range=None, # ÁÁ¶Èµ÷Õû
               shear_range=0.0, # ²Ã¼ô
               zoom_range=0.0, #¸¡µãÊý »ò [lower, upper]¡£Ëæ»úËõ·Å·¶Î§
               horizontal_flip=False, # ×óÓÒ·­×ª
               vertical_flip=False, # ´¹Ö±·­×ª
               rescale=None # ³ß¶Èµ÷Õû
            )

À´¿´ÏÂˮƽ·­×ªµÄ½á¹û£º

# »ñÈ¡Êý¾Ý¼¯
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
# ½«Êý¾Ýת»»Îª4άµÄÐÎʽ
x_train = X_train.reshape(X_train.shape[0],28,28,1)
x_test = X_test.reshape(X_test.shape[0],28,28,1)
# ÉèÖÃͼÏñÔöÇ¿·½Ê½£ºË®Æ½·­×ª
datagen = ImageDataGenerator(horizontal_flip=True)
# ²é¿´ÔöÇ¿ºóµÄ½á¹û
for X_batch,y_batch in datagen.flow(x_train,y_train,batch_size=9):
    plt.figure(figsize=(8,8)) # É趨ÿ¸öͼÏñÏÔʾµÄ´óС
    # ²úÉúÒ»¸ö3*3Íø¸ñµÄͼÏñ
    for i in range(0,9):
        plt.subplot(330+1+i) 
        plt.title(y_batch[i])
        plt.axis('off')
        plt.imshow(X_batch[i].reshape(28,28),cmap='gray')
    plt.show()
    break
0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿