Day30 参加职训(机器学习与资料分析工程师培训班),Tensorflow.keras

今日教学CNN
了解卷积层、池化层、平坦层、丢弃层各层相关系数的设定影响
https://ithelp.ithome.com.tw/upload/images/20210810/20139039Aty3YtLFj4.png

  • 卷基层: 积层是一组平行的特徵图(feature map),它通过在输入图像上滑动不同的卷积核并执行一定的运算而组成

  • 池化层: 主要是对卷积层的输出进行筛选或者撷取统计上的特徵,并将重要的特徵或资讯保留下来,同时将资料的维度减少

  • 平坦层: 在 CNN 前面几层都是卷积层跟池化层交互转换,後半段会使用多层感知器来稳定判断结果。所以再接入多层感知器前,先必须将矩阵打平成一维的阵列作为输入,然後再串到後面的隐藏层跟输出层。

  • 丢弃层: 提供一个简单且有效率的方式来避免overfitting在训练过程中,每次随机关闭某些神经元,对剩下的神经元进行训练

使用CIFAR10来练习

from tensorflow.keras.datasets import cifar10

# Load Data

(train_X, train_y), (test_X, test_y) = cifar10.load_data()

# Prepare X, y 

X_train = train_X.astype('float')/255
X_test = test_X.astype('float')/255

from tensorflow.keras.utils import to_categorical

y_train = to_categorical(train_y, 10)
y_test = to_categorical(test_y, 10)

#建构CNN网路

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

CIFAR10_Model = Sequential()
CIFAR10_Model.add(Conv2D(32, (3,3), activation = 'relu', input_shape = (32, 32, 3)))
CIFAR10_Model.add(MaxPooling2D((2,2)))
CIFAR10_Model.add(Conv2D(64, (3,3), activation = 'relu'))
CIFAR10_Model.add(MaxPooling2D((2,2)))
CIFAR10_Model.add(Flatten())
CIFAR10_Model.add(Dense(128, activation = 'relu'))
CIFAR10_Model.add(Dense(10, activation = 'softmax'))

CIFAR10_Model.summary()

CIFAR10_Model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', 
                      metrics = ['acc'])

from tensorflow.keras.callbacks import TensorBoard

CIFAR10_TB = TensorBoard(log_dir = './CIFAR100810', histogram_freq = 1, write_images = True)

CIFAR10_Model_History = CIFAR10_Model.fit(X_train, y_train, epochs = 20, batch_size = 256,
                                         callbacks = [CIFAR10_TB],
                                         validation_split = 0.2)

#评估模型
Test_loss, Test_acc = CIFAR10_Model.evaluate(X_test, y_test)
print(f'Testing loss is {Test_loss} and Testing accuracy is {Test_acc}')

https://ithelp.ithome.com.tw/upload/images/20210810/20139039jpMrucd3Hs.png


<<:  Composite:组合模式

>>:  Javascript 执行环境、作用域 - 执行绪与同步、非同步

[Day26] 实作 - 动画篇3

接着复写Spriteset_Base两个方法 createAnimation: createAnim...

【Day12】原始型别及物件型别

JavaScript 中型别主要分为原始型别和物件型别两种 原始型别 原始型别中包含七种型别, 而这...

0. 迈向Tech Leader的成长之路 - 褉子

缘起 两年前(2019年)笔者因为公司扩张而成为了团队的leader,身为一个热爱写扣的工程师,从来...

Day26 - 使用 Share Target Picker 分享讯息

LINE Developers:https://developers.line.biz/zh-ha...

不只懂 Vue 语法:请用图片轮播的例子示范 Composition API?

问题回答 这个例子会示范以 Compositions API 开发一个简单的图片轮播。先打 API ...