IOS、Python自学心得30天 Day-5 TensorFlow 建立和训练模型

前言:
再来就是建立和训练模型

程序码:
方案一

model = tf.keras.Sequential([
  layers.Conv2D(16, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)),
  layers.MaxPool2D(pool_size=(2, 2)),
  layers.Conv2D(32, kernel_size=(3, 3), activation='relu'),
  layers.MaxPool2D(pool_size=(2, 2)),
  layers.Conv2D(64, kernel_size=(3, 3), activation='relu'),
  layers.MaxPool2D(pool_size=(2, 2)),
  layers.Flatten(),
  layers.Dense(512, activation='relu'),
  layers.Dense(10, activation='softmax')
])
model.compile(
  optimizer='adam', 
  loss='sparse_categorical_crossentropy', 
  metrics=['accuracy']
)
EPOCH = 10 #训练次数
history = model.fit(
  train_batches, 
  validation_data=test_batches, 
  epochs=EPOCH
)

model.save('./keras_model.h5')

方案二

# 以训练好的 ResNet50 为基础来建立模型,
# 舍弃 ResNet50 顶层的 fully connected layers
net = ResNet50(include_top=False, weights='imagenet', input_tensor=None,
               input_shape=(IMAGE_SIZE[0],IMAGE_SIZE[1],3))
x = net.output
x = Flatten()(x)

# 增加 DropOut layer
x = Dropout(0.5)(x)

# 增加 Dense layer,以 softmax 产生个类别的机率值
output_layer = Dense(NUM_CLASSES, activation='softmax', name='softmax')(x)

# 设定冻结与要进行训练的网路层
net_final = Model(inputs=net.input, outputs=output_layer)
for layer in net_final.layers[:FREEZE_LAYERS]:
    layer.trainable = False
for layer in net_final.layers[FREEZE_LAYERS:]:
    layer.trainable = True

# 使用 Adam optimizer,以较低的 learning rate 进行 fine-tuning
net_final.compile(optimizer='adam',#(lr=1e-5),
                  loss='categorical_crossentropy', metrics=['accuracy'])

# 输出整个网路结构
print(net_final.summary())

# 训练模型
net_final.fit_generator

# 储存训练好的模型
net_final.save(WEIGHTS_FINAL)

<<:  Python 搜寻子目录下档案+筛选条件 walk+fnmatch

>>:  Day 06-制作购物车系统环境之Visual Studio Code

【Day8】在本地简单的建立 django(Django API Server的架设 1/3)

基本上目前看到的方法大致上都如下图所示,所以我目前实作的也是如此, 因为脑子里没有更好的解决方案(在...

Day26 - 动态模型 part1 (LSTM)

动态模型我们会使用 LSTM-based 架构,并分成两种: Basic LSTM Last-fra...

今晚,我最後想来点...完赛心路历程

Review 这 30 天的系列文章包含了以下部分: Container: Docker conce...

Day 1 Survey主题

参赛前言 由於目前是硕二的学生,平常有在外面接专案,但是为了要毕业还是需要努力想出论文题目 第一天先...

[Day 23] Leetcode 494. Target Sum (C++)

前言 今天这题也是top 100 liked的题目─494. Target Sum。虽然是mediu...