¸üÐÂʱ¼ä:2022Äê12ÔÂ07ÈÕ16ʱ57·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:
ͼÏñ·ÖÀàʵÖÊÉϾÍÊÇ´Ó¸ø¶¨µÄÀà±ð¼¯ºÏÖÐΪͼÏñ·ÖÅä¶ÔÓ¦±êÇ©µÄÈÎÎñ¡£Ò²¾ÍÊÇ˵ÎÒÃǵÄÈÎÎñÊÇ·ÖÎöÒ»¸öÊäÈëͼÏñ²¢·µ»ØÒ»¸ö¸ÃͼÏñÀà±ðµÄ±êÇ©¡£
¼Ù¶¨Àà±ð¼¯Îªcategories = {dog, cat, panda}£¬Ö®ºóÎÒÃÇÌṩһÕÅͼƬ¸ø·ÖÀàÄ£ÐÍ£¬ÈçÏÂͼËùʾ£º

·ÖÀàÄ£Ð͸øÍ¼Ïñ·ÖÅä¶à¸ö±êÇ©£¬Ã¿¸ö±êÇ©µÄ¸ÅÂÊÖµ²»Í¬£¬Èçdog:95%£¬cat:4%£¬panda:1%£¬¸ù¾Ý¸ÅÂÊÖµµÄ´óС½«¸ÃͼƬ·ÖÀàΪdog£¬ÄǾÍÍê³ÉÁËͼÏñ·ÖÀàµÄÈÎÎñ¡£ÏÂÃæÀûÓÃAlexNetÍê³ÉͼÏñ·ÖÀà¹ý³ÌµÄ½²½â¡£
AlexNetÍêÊÖдÊý×ÖÊÆÊ¶±ð
2012Ä꣬AlexNetºá¿Õ³öÊÀ£¬¸ÃÄ£Ð͵ÄÃû×ÖÔ´ÓÚÂÛÎĵÚÒ»×÷ÕßµÄÐÕÃûAlex Krizhevsky ¡£AlexNetʹÓÃÁË8²ã¾í»ýÉñ¾ÍøÂ磬ÒԺܴóµÄÓÅÊÆÓ®µÃÁËImageNet 2012ͼÏñʶ±ðÌôÕ½Èü¡£ËüÊ×´ÎÖ¤Ã÷ÁËѧϰµ½µÄÌØÕ÷¿ÉÒÔ³¬Ô½ÊÖ¹¤Éè¼ÆµÄÌØÕ÷£¬´Ó¶øÒ»¾Ù´òÆÆ¼ÆËã»úÊÓ¾õÑо¿µÄ·½Ïò¡£
AlexNetʹÓÃImageNetÊý¾Ý¼¯½øÐÐѵÁ·£¬µ«ÒòΪImageNetÊý¾Ý¼¯½Ï´óѵÁ·Ê±¼ä½Ï³¤£¬ÎÒÃÇÈÔÓÃÇ°ÃæµÄMNISTÊý¾Ý¼¯À´ÑÝʾAlexNet¡£¶ÁÈ¡Êý¾ÝµÄʱ½«Í¼Ïñ¸ßºÍ¿íÀ©´óµ½AlexNetʹÓõÄͼÏñ¸ßºÍ¿í227¡£Õâ¸öͨ¹ýtf.image.resize_with_padÀ´ÊµÏÖ¡£
Êý¾Ý¶ÁÈ¡
Ê×ÏÈ»ñÈ¡Êý¾Ý,²¢½øÐÐά¶Èµ÷Õû£º
import numpy as np # »ñÈ¡ÊÖдÊý×ÖÊý¾Ý¼¯ (train_images, train_labels), (test_images, test_labels) = mnist.load_data() # ѵÁ·¼¯Êý¾Ýά¶ÈµÄµ÷Õû£ºN H W C train_images = np.reshape(train_images,(train_images.shape[0],train_images.shape[1],train_images.shape[2],1)) # ²âÊÔ¼¯Êý¾Ýά¶ÈµÄµ÷Õû£ºN H W C test_images = np.reshape(test_images,(test_images.shape[0],test_images.shape[1],test_images.shape[2],1))ÓÉÓÚʹÓÃÈ«²¿Êý¾ÝѵÁ·Ê±¼ä½Ï³¤£¬ÎÒÃǶ¨ÒåÁ½¸ö·½·¨»ñÈ¡²¿·ÖÊý¾Ý£¬²¢½«Í¼Ïñµ÷ÕûΪ227*227´óС£¬½øÐÐÄ£ÐÍѵÁ·£º
# ¶¨ÒåÁ½¸ö·½·¨Ëæ»ú³éÈ¡²¿·ÖÑù±¾ÑÝʾ# »ñȡѵÁ·¼¯Êý¾Ýdef get_train(size):
# Ëæ»úÉú³ÉÒª³éÑùµÄÑù±¾µÄË÷Òý
index = np.random.randint(0, np.shape(train_images)[0], size)
# ½«ÕâЩÊý¾Ýresize³É227*227´óС
resized_images = tf.image.resize_with_pad(train_images[index],227,227,)
# ·µ»Ø³éÈ¡µÄ
return resized_images.numpy(), train_labels[index]# »ñÈ¡²âÊÔ¼¯Êý¾Ý def get_test(size):
# Ëæ»úÉú³ÉÒª³éÑùµÄÑù±¾µÄË÷Òý
index = np.random.randint(0, np.shape(test_images)[0], size)
# ½«ÕâЩÊý¾Ýresize³É227*227´óС
resized_images = tf.image.resize_with_pad(test_images[index],227,227,)
# ·µ»Ø³éÑùµÄ²âÊÔÑù±¾
return resized_images.numpy(), test_labels[index]
µ÷ÓÃÉÏÊöÁ½¸ö·½·¨£¬»ñÈ¡²ÎÓëÄ£ÐÍѵÁ·ºÍ²âÊÔµÄÊý¾Ý¼¯£º
# »ñȡѵÁ·Ñù±¾ºÍ²âÊÔÑù±¾ train_images,train_labels = get_train(256) test_images,test_labels = get_test(128)ΪÁËÈôó¼Ò¸üºÃµÄÀí½â£¬ÎÒÃǽ«Êý¾Ýչʾ³öÀ´£º
# Êý¾Ýչʾ£º½«Êý¾Ý¼¯µÄǰ¾Å¸öÊý¾Ý¼¯½øÐÐչʾfor i in range(9):
plt.subplot(3,3,i+1)
# ÒÔ»Ò¶ÈͼÏÔʾ£¬²»½øÐвåÖµ
plt.imshow(train_images[i].astype(np.int8).squeeze(), cmap='gray', interpolation='none')
# ÉèÖÃͼƬµÄ±êÌ⣺¶ÔÓ¦µÄÀà±ð
plt.title("Êý×Ö{}".format(train_labels[i]))
½á¹ûΪ£º

±±¾©Ð£Çø