ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > ÈçºÎÓþí»ýÉñ¾­ÍøÂçCNNʶ±ðÊÖдÊý×Ö¼¯£¿

ÈçºÎÓþí»ýÉñ¾­ÍøÂçCNNʶ±ðÊÖдÊý×Ö¼¯£¿

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2025/6/26 19:52:37

ÈçºÎÓþí»ýÉñ¾­ÍøÂçCNNʶ±ðÊÖдÊý×Ö¼¯£¿

ǰ¼¸ÌìÓÃCNNʶ±ðÊÖдÊý×Ö¼¯£¬ºóÀ´¿´µ½kaggleÉÏÓÐÒ»¸ö±ÈÈüÊÇʶ±ðÊÖдÊý×Ö¼¯µÄ£¬ÒѾ­½øÐÐÁËÒ»Äê¶àÁË£¬Ä¿Ç°ÓÐ1179¸öÓÐЧÌá½»£¬×î¸ßµÄÊÇ100%£¬ÎÒ×öÁËһϣ¬ÓÃkeras×öµÄ£¬Ò»¿ªÊ¼ÓÃ×î¼òµ¥µÄMLP£¬×¼È·ÂÊÖ»ÓÐ98.19%£¬È»ºó²»¶Ï¸Ä½ø£¬ÏÖÔÚÊÇ99.78%£¬È»¶øÎÒ¿´µ½ÅÅÃûµÚÒ»ÊÇ100%£¬ÐÄËé = =£¬ÓÚÊÇÓָĽøÁËÒ»°æ£¬ÏÖÔÚ°Ñ×îºÃµÄ½á¹û¼Ç¼һÏ£¬Èç¹ûÌáÉýÁËÔÙÀ´¸üС£

ÊÖдÊý×Ö¼¯ÏàÐÅ´ó¼ÒÓ¦¸ÃºÜÊìϤÁË£¬Õâ¸ö³ÌÐòÏ൱ÓÚѧһÃÅÐÂÓïÑԵġ°Hello World¡±£¬»òÕßmapreduceµÄ¡°WordCount¡±£º£©ÕâÀï¾Í²»¶à×ö½éÉÜÁË£¬¼òµ¥¸ø´ó¼Ò¿´Ò»Ï£º ¸´ÖÆ´úÂë

1 # Author£ºCharlotte 2 # Plot mnist dataset

3 from keras.datasets import mnist 4 import matplotlib.pyplot as plt 5 # load the MNIST dataset

6 (X_train, y_train), (X_test, y_test) = mnist.load_data() 7 # plot 4 images as gray scale 8 plt.subplot(221)

9 plt.imshow(X_train[0], cmap=plt.get_cmap('PuBuGn_r')) 10 plt.subplot(222)

11 plt.imshow(X_train[1], cmap=plt.get_cmap('PuBuGn_r')) 12 plt.subplot(223)

13 plt.imshow(X_train[2], cmap=plt.get_cmap('PuBuGn_r')) 14 plt.subplot(224)

15 plt.imshow(X_train[3], cmap=plt.get_cmap('PuBuGn_r')) 16 # show the plot 17 plt.show() ¸´ÖÆ´úÂë ͼ£º

1.BaseLine°æ±¾

Ò»¿ªÊ¼ÎÒûÓÐÏë¹ýÓÃCNN×ö£¬ÒòΪ±È½ÏºÄʱ£¬ËùÒÔÏë¿´¿´Ö±½ÓÓñȽϼòµ¥µÄËã·¨¿´Äܲ»Äܵõ½ºÜºÃµÄЧ¹û¡£Ö®Ç°Óùý»úÆ÷ѧϰËã·¨ÅܹýÒ»±é£¬×îºÃµÄЧ¹ûÊÇSVM£¬96.8%£¨Ä¬ÈϲÎÊý£¬Î´µ÷ÓÅ£©£¬ËùÒÔÕâ´Î×¼±¸ÓÃÉñ¾­ÍøÂç×ö¡£BaseLine°æ±¾ÓõÄÊÇMultiLayer Percepton£¨¶à²ã¸ÐÖª»ú£©¡£Õâ¸öÍøÂç½á¹¹±È½Ï¼òµ¥£¬ÊäÈë--->Òþº¬--->Êä³ö¡£Òþº¬²ã²ÉÓõÄrectifier linear unit£¬Êä³öÖ±½ÓѡȡµÄsoftmax½øÐжà·ÖÀà¡£

ÍøÂç½á¹¹£º

´úÂ룺 ¸´ÖÆ´úÂë

1 # coding:utf-8

2 # Baseline MLP for MNIST dataset 3 import numpy

4 from keras.datasets import mnist 5 from keras.models import Sequential 6 from keras.layers import Dense 7 from keras.layers import Dropout 8 from keras.utils import np_utils 9 10 seed = 7

11 numpy.random.seed(seed) 12 #¼ÓÔØÊý¾Ý

13 (X_train, y_train), (X_test, y_test) = mnist.load_data() 14

15 num_pixels = X_train.shape[1] * X_train.shape[2]

16 X_train = X_train.reshape(X_train.shape[0], num_pixels).astype('float32') 17 X_test = X_test.reshape(X_test.shape[0], num_pixels).astype('float32') 18

19 X_train = X_train / 255 20 X_test = X_test / 255 21

22 # ¶ÔÊä³ö½øÐÐone hot±àÂë

23 y_train = np_utils.to_categorical(y_train) 24 y_test = np_utils.to_categorical(y_test) 25 num_classes = y_test.shape[1] 26

27 # MLPÄ£ÐÍ

28 def baseline_model(): 29 model = Sequential()

30 model.add(Dense(num_pixels, input_dim=num_pixels, init='normal', activation='relu')) 31 model.add(Dense(num_classes, init='normal', activation='softmax')) 32 model.summary()

33 model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) 34 return model 35

36 # ½¨Á¢Ä£ÐÍ

37 model = baseline_model() 38 39 # Fit

40 model.fit(X_train, y_train, validation_data=(X_test, y_test), nb_epoch=10, batch_size=200, verbose=2) 41

42 #Evaluation

43 scores = model.evaluate(X_test, y_test, verbose=0)

44 print(\Êä³ö´íÎóÂÊ ¸´ÖÆ´úÂë

½á¹û£º ¸´ÖÆ´úÂë

1 Layer (type) Output Shape Param # Connected to

2 ==================================================================================================== 3 dense_1 (Dense) (None, 784) 615440 dense_input_1[0][0]

4 ____________________________________________________________________________________________________ 5 dense_2 (Dense) (None, 10) 7850 dense_1[0][0]

6 ==================================================================================================== 7 Total params: 623290

8 ____________________________________________________________________________________________________ 9 Train on 60000 samples, validate on 10000 samples 10 Epoch 1/10

11 3s - loss: 0.2791 - acc: 0.9203 - val_loss: 0.1420 - val_acc: 0.9579 12 Epoch 2/10

13 3s - loss: 0.1122 - acc: 0.9679 - val_loss: 0.0992 - val_acc: 0.9699 14 Epoch 3/10

15 3s - loss: 0.0724 - acc: 0.9790 - val_loss: 0.0784 - val_acc: 0.9745 16 Epoch 4/10

17 3s - loss: 0.0509 - acc: 0.9853 - val_loss: 0.0774 - val_acc: 0.9773 18 Epoch 5/10

19 3s - loss: 0.0366 - acc: 0.9898 - val_loss: 0.0626 - val_acc: 0.9794 20 Epoch 6/10

21 3s - loss: 0.0265 - acc: 0.9930 - val_loss: 0.0639 - val_acc: 0.9797 22 Epoch 7/10

23 3s - loss: 0.0185 - acc: 0.9956 - val_loss: 0.0611 - val_acc: 0.9811 24 Epoch 8/10

25 3s - loss: 0.0150 - acc: 0.9967 - val_loss: 0.0616 - val_acc: 0.9816 26 Epoch 9/10

27 4s - loss: 0.0107 - acc: 0.9980 - val_loss: 0.0604 - val_acc: 0.9821 28 Epoch 10/10

29 4s - loss: 0.0073 - acc: 0.9988 - val_loss: 0.0611 - val_acc: 0.9819 30 Baseline Error: 1.81% ¸´ÖÆ´úÂë

¿ÉÒÔ¿´µ½½á¹û»¹ÊDz»´íµÄ£¬ÕýÈ·ÂÊ98.19%£¬´íÎóÂÊÖ»ÓÐ1.81%£¬¶øÇÒÖ»µü´úÊ®´ÎЧ¹ûÒ²²»´í¡£Õâ¸öʱºòÎÒ»¹ÊÇûÏ뵽ȥÓÃCNN£¬¶øÊÇÏëÈç¹ûµü´ú100´Î£¬»á²»»áЧ¹ûºÃÒ»µã£¿ÓÚÊÇÎÒµü´úÁË100´Î£¬½á¹ûÈçÏ£º

Epoch 100/100

8s - loss: 4.6181e-07 - acc: 1.0000 - val_loss: 0.0982 - val_acc: 0.9854 Baseline Error: 1.46%

´Ó½á¹ûÖпÉÒÔ¿´³ö£¬µü´ú100´ÎÒ²Ö»Ìá¸ßÁË0.35%£¬Ã»ÓÐÍ»ÆÆ99%£¬ËùÒԾͿ¼ÂÇÓÃCNNÀ´×ö¡£

2.¼òµ¥µÄCNNÍøÂç

kerasµÄCNNÄ£¿é»¹ÊǺÜÈ«µÄ£¬ÓÉÓÚÕâÀï×ÅÖØ½²CNNµÄ½á¹û£¬¶ÔÓÚCNNµÄ»ù±¾ÖªÊ¶¾Í²»Õ¹¿ª½²ÁË¡£

ÍøÂç½á¹¹£º

´úÂ룺 ¸´ÖÆ´úÂë 1 #coding: utf-8 2 #Simple CNN 3 import numpy

4 from keras.datasets import mnist 5 from keras.models import Sequential 6 from keras.layers import Dense 7 from keras.layers import Dropout 8 from keras.layers import Flatten

9 from keras.layers.convolutional import Convolution2D 10 from keras.layers.convolutional import MaxPooling2D 11 from keras.utils import np_utils 12 13 seed = 7

14 numpy.random.seed(seed) 15

16 #¼ÓÔØÊý¾Ý

17 (X_train, y_train), (X_test, y_test) = mnist.load_data() 18 # reshape to be [samples][channels][width][height]

19 X_train = X_train.reshape(X_train.shape[0], 1, 28, 28).astype('float32') 20 X_test = X_test.reshape(X_test.shape[0], 1, 28, 28).astype('float32') 21

22 # normalize inputs from 0-255 to 0-1 23 X_train = X_train / 255 24 X_test = X_test / 255 25

26 # one hot encode outputs

27 y_train = np_utils.to_categorical(y_train) 28 y_test = np_utils.to_categorical(y_test) 29 num_classes = y_test.shape[1] 30

31 # define a simple CNN model 32 def baseline_model(): 33 # create model 34 model = Sequential()

  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

ÈçºÎÓþí»ýÉñ¾­ÍøÂçCNNʶ±ðÊÖдÊý×Ö¼¯£¿ ǰ¼¸ÌìÓÃCNNʶ±ðÊÖдÊý×Ö¼¯£¬ºóÀ´¿´µ½kaggleÉÏÓÐÒ»¸ö±ÈÈüÊÇʶ±ðÊÖдÊý×Ö¼¯µÄ£¬ÒѾ­½øÐÐÁËÒ»Äê¶àÁË£¬Ä¿Ç°ÓÐ1179¸öÓÐЧÌá½»£¬×î¸ßµÄÊÇ100%£¬ÎÒ×öÁËһϣ¬ÓÃkeras×öµÄ£¬Ò»¿ªÊ¼ÓÃ×î¼òµ¥µÄMLP£¬×¼È·ÂÊÖ»ÓÐ98.19%£¬È»ºó²»¶Ï¸Ä½ø£¬ÏÖÔÚÊÇ99.78%£¬È»¶øÎÒ¿´µ½ÅÅÃûµÚÒ»ÊÇ100%£¬ÐÄËé = =£¬ÓÚÊÇÓָĽøÁËÒ»°æ£¬ÏÖÔÚ°Ñ×îºÃµÄ½á¹û¼Ç¼һÏ£¬Èç¹ûÌáÉýÁËÔÙÀ´¸üС£ ÊÖдÊý×Ö¼¯ÏàÐÅ´ó¼ÒÓ¦¸ÃºÜÊìϤÁË£¬Õâ¸ö³ÌÐòÏ൱ÓÚѧһÃÅÐÂÓïÑԵġ°Hello World¡±£¬»òÕßmapreduceµÄ¡°WordCount¡±£º£©ÕâÀï¾Í²»¶à×ö½éÉÜÁË£¬¼òµ¥¸ø´ó¼Ò¿´Ò»Ï£º ¸´ÖÆ´úÂë 1 # Author£ºCharlotte 2 # Plot mnist dataset 3 from keras.data

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com