1.0 - TensorFlow model

  导入相关依赖包。

import numpy as np
import h5py
import matplotlib.pyplot as plt
import scipy
from PIL import Image
from scipy import ndimage
import tensorflow as tf
from tensorflow.python.framework import ops
from cnn_utils import *

  初始化全局变量。

%matplotlib inline
np.random.seed(1)

  导入数据集。

# Loading the data (signs)
X_train_orig, Y_train_orig, X_test_orig, Y_test_orig, classes = load_dataset()

  输出一张样例图片预览。

# Example of a picture
index = 6
plt.imshow(X_train_orig[index])
print("y = " + str(np.squeeze(Y_train_orig[:, index])))
  Result:
  y = 2
 
aaarticlea/png;base64,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" alt="" />

  数据预处理。将输入图像像素除以255进行归一化,将标签数据扩充为$one\_hot$编码,并且查看数据规模。

X_train = X_train_orig / 255.
X_test = X_test_orig / 255.
Y_train = convert_to_one_hot(Y_train_orig, 6).T
Y_test = convert_to_one_hot(Y_test_orig, 6).T
print("number of training examples = " + str(X_train.shape[0]))
print("number of test examples = " + str(X_test.shape[0]))
print("X_train shape: " + str(X_train.shape))
print("Y_train shape: " + str(Y_train.shape))
print("X_test shape: " + str(X_test.shape))
print("Y_test shape: " + str(Y_test.shape))
conv_layers = {}
Result:
number of training examples = 1080
number of test examples = 120
X_train shape: (1080, 64, 64, 3)
Y_train shape: (1080, 6)
X_test shape: (120, 64, 64, 3)
Y_test shape: (120, 6)

1.1 - Create placeholders

# GRADED FUNCTION: create_placeholders

def create_placeholders(n_H0, n_W0, n_C0, n_y):
"""
Creates the placeholders for the tensorflow session. Arguments:
n_H0 -- scalar, height of an input image
n_W0 -- scalar, width of an input image
n_C0 -- scalar, number of channels of the input
n_y -- scalar, number of classes Returns:
X -- placeholder for the data input, of shape [None, n_H0, n_W0, n_C0] and dtype "float"
Y -- placeholder for the input labels, of shape [None, n_y] and dtype "float"
""" ### START CODE HERE ### (≈2 lines)
   # tf.placeholder第一个参数为类型,第二个参数位数据规模,可通过name参数指定变量名
X = tf.placeholder(tf.float32, [None, n_H0, n_W0, n_C0])
Y = tf.placeholder(tf.float32, [None, n_y])
### END CODE HERE ### return X, Y
X, Y = create_placeholders(64, 64, 3, 6)
print ("X = " + str(X))
print ("Y = " + str(Y))
Result:
X = Tensor("Placeholder_2:0", shape=(?, 64, 64, 3), dtype=float32)
Y = Tensor("Placeholder_3:0", shape=(?, 6), dtype=float32)

1.2 - Initialize parameters

  通过$tf.contrib.layers.xavier\_initializer(seed=0)$初始化权重/过滤器/卷积核$W_1$和$W_2$,不用关心$bias\_variables$的初始化,因为TensorFlow方法会帮助我们做这件事,所以我们只需要初始化卷积方法的卷积核。TensorFlow也会自动初始化全连接层的参数。

  使用TensorFlow初始化参数有如下语法:

W = tf.get_variable("W", [1,2,3,4], initializer = ...)
# GRADED FUNCTION: initialize_parameters

def initialize_parameters():
"""
Initializes weight parameters to build a neural network with tensorflow. The shapes are:
W1 : [4, 4, 3, 8]
W2 : [2, 2, 8, 16]
Returns:
parameters -- a dictionary of tensors containing W1, W2
""" tf.set_random_seed(1) # so that your "random" numbers match ours ### START CODE HERE ### (approx. 2 lines of code)
W1 = tf.get_variable("W1", [4, 4, 3, 8], initializer=tf.contrib.layers.xavier_initializer(seed=0))
W2 = tf.get_variable("W2", [2, 2, 8, 16], initializer=tf.contrib.layers.xavier_initializer(seed=0))
### END CODE HERE ### parameters = {"W1": W1,
"W2": W2} return parameters
tf.reset_default_graph()
with tf.Session() as sess_test:
parameters = initialize_parameters()
init = tf.global_variables_initializer()
sess_test.run(init)
print("W1 = " + str(parameters["W1"].eval()[1,1,1]))
print("W2 = " + str(parameters["W2"].eval()[1,1,1]))
Result:
W1 = [ 0.00131723 0.14176141 -0.04434952 0.09197326 0.14984085 -0.03514394
-0.06847463 0.05245192]
W2 = [-0.08566415 0.17750949 0.11974221 0.16773748 -0.0830943 -0.08058
-0.00577033 -0.14643836 0.24162132 -0.05857408 -0.19055021 0.1345228
-0.22779644 -0.1601823 -0.16117483 -0.10286498]

1.3 - Forward propagation

  在TensorFlow中,可以通过如下一些函数(语法)实现前向传播。

tf.nn.conv2d(X,W1, strides = [1,s,s,1], padding = 'SAME')
tf.nn.max_pool(A, ksize = [1,f,f,1], strides = [1,s,s,1], padding = 'SAME')
tf.nn.relu(Z1)
tf.contrib.layers.flatten(P)
tf.contrib.layers.fully_connected(F, num_outputs)

  注意到,使用$tf.contrib.layers.fully\_connected$将会自动初始化全连接层的参数(权重),并且在训练模型的时候训练参数。因此我们无需初始化其参数。

  实现方法$forward_propagation$,使其构造模型:CONV2D -> RELU -> MAXPOOL -> CONV2D -> RELU -> MAXPOOL -> FLATTEN -> FULLYCONNECTED。

# GRADED FUNCTION: forward_propagation

def forward_propagation(X, parameters):
"""
Implements the forward propagation for the model:
CONV2D -> RELU -> MAXPOOL -> CONV2D -> RELU -> MAXPOOL -> FLATTEN -> FULLYCONNECTED Arguments:
X -- input dataset placeholder, of shape (input size, number of examples)
parameters -- python dictionary containing your parameters "W1", "W2"
the shapes are given in initialize_parameters Returns:
Z3 -- the output of the last LINEAR unit
""" # Retrieve the parameters from the dictionary "parameters"
W1 = parameters['W1']
W2 = parameters['W2'] ### START CODE HERE ###
# CONV2D: stride of 1, padding 'SAME'
Z1 = tf.nn.conv2d(X, W1, strides=[1, 1, 1, 1], padding="SAME")
# RELU
A1 = tf.nn.relu(Z1)
# MAXPOOL: window 8x8, sride 8, padding 'SAME'
P1 = tf.nn.max_pool(A1, ksize=[1, 8, 8, 1], strides=[1, 8, 8, 1], padding="SAME")
# CONV2D: filters W2, stride 1, padding 'SAME'
Z2 = tf.nn.conv2d(P1, W2, strides=[1, 1, 1, 1], padding="SAME")
# RELU
A2 = tf.nn.relu(Z2)
# MAXPOOL: window 4x4, stride 4, padding 'SAME'
P2 = tf.nn.max_pool(A2, ksize=[1, 4, 4, 1], strides=[1, 4, 4, 1], padding="SAME")
# FLATTEN
P2 = tf.contrib.layers.flatten(P2)
# FULLY-CONNECTED without non-linear activation function (not not call softmax).
# 6 neurons in output layer. Hint: one of the arguments should be "activation_fn=None"
Z3 = tf.contrib.layers.fully_connected(P2, 6, activation_fn=None)
### END CODE HERE ### return Z3
tf.reset_default_graph()

with tf.Session() as sess:
np.random.seed(1)
X, Y = create_placeholders(64, 64, 3, 6)
parameters = initialize_parameters()
Z3 = forward_propagation(X, parameters)
init = tf.global_variables_initializer()
sess.run(init)
a = sess.run(Z3, {X: np.random.randn(2,64,64,3), Y: np.random.randn(2,6)})
print("Z3 = " + str(a))
Result:
Z3 = [[ 1.44169843 -0.24909666 5.45049906 -0.26189619 -0.20669907 1.36546707]
[ 1.40708458 -0.02573211 5.08928013 -0.48669922 -0.40940708 1.26248586]]

1.3 - Compute cost

# GRADED FUNCTION: compute_cost 

def compute_cost(Z3, Y):
"""
Computes the cost Arguments:
Z3 -- output of forward propagation (output of the last LINEAR unit), of shape (6, number of examples)
Y -- "true" labels vector placeholder, same shape as Z3 Returns:
cost - Tensor of the cost function
""" ### START CODE HERE ### (1 line of code)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=Z3, labels=Y))
### END CODE HERE ### return cost
tf.reset_default_graph()

with tf.Session() as sess:
np.random.seed(1)
X, Y = create_placeholders(64, 64, 3, 6)
parameters = initialize_parameters()
Z3 = forward_propagation(X, parameters)
cost = compute_cost(Z3, Y)
init = tf.global_variables_initializer()
sess.run(init)
a = sess.run(cost, {X: np.random.randn(4,64,64,3), Y: np.random.randn(4,6)})
print("cost = " + str(a))
Result:
cost = 4.66487

1.4 - Model

  整合上面实现了的有用的方法去构建一个模型在SIGNS数据集上进行训练。

  将有几个步骤:

  * 1 create placeholders

  * 2 initialize parameters

  * 3 forward propagate

  * 4 compute the cost

  * 5 create an optimizer

  最后,创建一个$session$然后循环$num\_epochs$,每一次获得一个$mini-batches$并且通过模型预测出结果计算损失并且优化他们。

# GRADED FUNCTION: model

def model(X_train, Y_train, X_test, Y_test, learning_rate = 0.009,
num_epochs = 100, minibatch_size = 64, print_cost = True):
"""
Implements a three-layer ConvNet in Tensorflow:
CONV2D -> RELU -> MAXPOOL -> CONV2D -> RELU -> MAXPOOL -> FLATTEN -> FULLYCONNECTED Arguments:
X_train -- training set, of shape (None, 64, 64, 3)
Y_train -- test set, of shape (None, n_y = 6)
X_test -- training set, of shape (None, 64, 64, 3)
Y_test -- test set, of shape (None, n_y = 6)
learning_rate -- learning rate of the optimization
num_epochs -- number of epochs of the optimization loop
minibatch_size -- size of a minibatch
print_cost -- True to print the cost every 100 epochs Returns:
train_accuracy -- real number, accuracy on the train set (X_train)
test_accuracy -- real number, testing accuracy on the test set (X_test)
parameters -- parameters learnt by the model. They can then be used to predict.
""" ops.reset_default_graph() # to be able to rerun the model without overwriting tf variables
tf.set_random_seed(1) # to keep results consistent (tensorflow seed)
seed = 3 # to keep results consistent (numpy seed)
(m, n_H0, n_W0, n_C0) = X_train.shape
n_y = Y_train.shape[1]
costs = [] # To keep track of the cost # Create Placeholders of the correct shape
### START CODE HERE ### (1 line)
   # 1 create placeholders
X, Y = create_placeholders(n_H0, n_W0, n_C0, n_y)
### END CODE HERE ### # Initialize parameters
### START CODE HERE ### (1 line)
   # 2 initialize parameters
parameters = initialize_parameters()
### END CODE HERE ### # Forward propagation: Build the forward propagation in the tensorflow graph
### START CODE HERE ### (1 line)
   # 3 forward propagate
Z3 = forward_propagation(X, parameters)
### END CODE HERE ### # Cost function: Add cost function to tensorflow graph
### START CODE HERE ### (1 line)
   # 4 compute the cost
cost = compute_cost(Z3, Y)
### END CODE HERE ### # Backpropagation: Define the tensorflow optimizer. Use an AdamOptimizer that minimizes the cost.
### START CODE HERE ### (1 line)
   # 5 create an optimizer
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)
### END CODE HERE ### # Initialize all the variables globally
   # 初始化全部变量
init = tf.global_variables_initializer() # Start the session to compute the tensorflow graph
   # 创建一个会话,并开始执行
with tf.Session() as sess: # Run the initialization
sess.run(init) # Do the training loop
     # 训练num_epoches轮
for epoch in range(num_epochs): minibatch_cost = 0. # 保存当前mini_batch的cost
num_minibatches = int(m / minibatch_size) # number of minibatches of size minibatch_size in the train set
seed = seed + 1
minibatches = random_mini_batches(X_train, Y_train, minibatch_size, seed) # 随机从训练集中获取一个mini_batch for minibatch in minibatches: # 遍历mini_batch中的训练数据,计算损失 # Select a minibatch
(minibatch_X, minibatch_Y) = minibatch
# IMPORTANT: The line that runs the graph on a minibatch.
# Run the session to execute the optimizer and the cost, the feedict should contain a minibatch for (X,Y).
### START CODE HERE ### (1 line)
_ , temp_cost = sess.run([optimizer, cost], feed_dict={X:minibatch_X, Y:minibatch_Y})
### END CODE HERE ### minibatch_cost += temp_cost / num_minibatches # Print the cost every epoch
if print_cost == True and epoch % 5 == 0: # 每5轮输出一次当前损失值
print ("Cost after epoch %i: %f" % (epoch, minibatch_cost))
if print_cost == True and epoch % 1 == 0: # 取偶数轮数的损失值来画折线图
costs.append(minibatch_cost) # plot the cost
     # 画出损失值折线图
plt.plot(np.squeeze(costs))
plt.ylabel('cost')
plt.xlabel('iterations (per tens)')
plt.title("Learning rate =" + str(learning_rate))
plt.show() # Calculate the correct predictions
     # 计算预测准确率  
predict_op = tf.argmax(Z3, 1)
correct_prediction = tf.equal(predict_op, tf.argmax(Y, 1)) # Calculate accuracy on the test set
     # 计算训练集准确率以及测试集准确率并且打印出来
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print(accuracy)
train_accuracy = accuracy.eval({X: X_train, Y: Y_train})
test_accuracy = accuracy.eval({X: X_test, Y: Y_test})
print("Train Accuracy:", train_accuracy)
print("Test Accuracy:", test_accuracy) return train_accuracy, test_accuracy, parameters
_, _, parameters = model(X_train, Y_train, X_test, Y_test)
  Result:
Cost after epoch 0: 1.921332
Cost after epoch 5: 1.904156
Cost after epoch 10: 1.904309
Cost after epoch 15: 1.904477
Cost after epoch 20: 1.901876
Cost after epoch 25: 1.784078
Cost after epoch 30: 1.681051
Cost after epoch 35: 1.618206
Cost after epoch 40: 1.597971
Cost after epoch 45: 1.566706
Cost after epoch 50: 1.554487
Cost after epoch 55: 1.502187
Cost after epoch 60: 1.461036
Cost after epoch 65: 1.304490
Cost after epoch 70: 1.201760
Cost after epoch 75: 1.163242
Cost after epoch 80: 1.102885
Cost after epoch 85: 1.087105
Cost after epoch 90: 1.051911
Cost after epoch 95: 1.018554
 
aaarticlea/png;base64,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" alt="" />
 
Tensor("Mean_1:0", shape=(), dtype=float32)
Train Accuracy: 0.666667
Test Accuracy: 0.583333
fname = "images/thumbs_up.jpg"
image = np.array(ndimage.imread(fname, flatten=False))
my_image = scipy.misc.imresize(image, size=(64,64))
plt.imshow(my_image)
Result:
<matplotlib.image.AxesImage at 0x211fe84c748>
 
aaarticlea/png;base64,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" alt="" />

1.5 - References

https://web.stanford.edu/class/cs230/

DeepLearning.ai-Week1-Convolution+model+-+Application的更多相关文章

  1. 吴恩达DeepLearning.ai的Sequence model作业Dinosaurus Island

    目录 1 问题设置 1.1 数据集和预处理 1.2 概览整个模型 2. 创建模型模块 2.1 在优化循环中梯度裁剪 2.2 采样 3. 构建语言模型 3.1 梯度下降 3.2 训练模型 4. 结论   ...

  2. Coursera机器学习+deeplearning.ai+斯坦福CS231n

    日志 20170410 Coursera机器学习 2017.11.28 update deeplearning 台大的机器学习课程:台湾大学林轩田和李宏毅机器学习课程 Coursera机器学习 Wee ...

  3. Deeplearning - Overview of Convolution Neural Network

    Finally pass all the Deeplearning.ai courses in March! I highly recommend it! If you already know th ...

  4. Coursera深度学习(DeepLearning.ai)编程题&笔记

    因为是Jupyter Notebook的形式,所以不方便在博客中展示,具体可在我的github上查看. 第一章 Neural Network & DeepLearning week2 Logi ...

  5. DeepLearning.ai学习笔记汇总

    第一章 神经网络与深度学习(Neural Network & Deeplearning) DeepLearning.ai学习笔记(一)神经网络和深度学习--Week3浅层神经网络 DeepLe ...

  6. DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)

    一.进行误差分析 很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差.想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫 ...

  7. Coursera DeepLearning.ai Logistic Regression逻辑回归总结

    既<Machine Learning>课程后,Andrew Ng又推出了新一系列的课程<DeepLearning.ai>,注册了一下可以试听7天.之后每个月要$49,想想还是有 ...

  8. Deeplearning.ai课程笔记--汇总

    从接触机器学习就了解到Andrew Ng的机器学习课程,后来发现又出来深度学习课程,就开始在网易云课堂上学习deeplearning.ai的课程,Andrew 的课真是的把深入浅出.当然学习这些课程还 ...

  9. deeplearning.ai学习RNN

    一.RNN基本结构 普通神经网络不能处理时间序列的信息,只能割裂的单个处理,同时普通神经网络如果用来处理文本信息的话,参数数目将是非常庞大,因为如果采用one-hot表示词的话,维度非常大. RNN可 ...

  10. deeplearning.ai 旁听如何做课后编程作业

    在上吴恩达老师的深度学习课程,在coursera上. 我觉得课程绝对值的49刀,但是确实没有额外的钱来上课.而且课程提供了旁听和助学金. 之前在coursera上算法和机器学习都是直接旁听的,这些课旁 ...

随机推荐

  1. mongoDB-权限控制

    启动服务D:\MongoDB\Server\3.6\bin>mongod.exe --dbpath D:\MongoDB\Server\3.6\data 扩展 无认证启动:mongod --po ...

  2. 关于用户输入恶意js

    有些黑客经常闲得蛋疼的那别人的网站测试,利用一些输入的漏洞提交js代码,搞恶作剧. 对于freemarker视图的web应用,可以参考以下方法: http://yshjava.iteye.com/bl ...

  3. 彻底删除与安装MySQL

    一.下载msi安装版:https://dev.mysql.com/downloads/mysql/ 二.安装前一定要彻底删除已有的MySQL:(从未安装过,忽略此步) 1.计算机处右键快捷菜单,管理, ...

  4. 基于LVM卷的MYSQL快照恢复

    在mysql数据库环境中,如果数据库数据很重要,可以使用LVM卷管理的方式,通过对数据卷进行快照,得到快速备份的目的, 首先回顾一下LVM卷管理的几个概念: 物理磁盘PD,physical disk, ...

  5. Mysql的SQL语句常用基本命令

    SQL语句分类:DDL,DML,DQL,DCL. 1.数据库操作: 创建数据库:create database 数据库名 charater set gbk; 删除数据库:drop database 数 ...

  6. 面向对象【day07】:面向对象使用场景(十)

    本节内容 1.概述 2.知识回顾 3.使用场景 一.概述 之前我们学了面向对象知识,那我们在什么时候用呢?不可能什么时候都需要用面向对象吧,除非你是纯的面向对象语言,好的,我们下面就来谈谈 二.知识回 ...

  7. R语言学习网址

    1. https://www.r-bloggers.com/ 2. https://www.kaggle.com/datasets 3. RStudio download: https://www.r ...

  8. Redis AOF、RDB持久化

    持久化一:RDB方式 默认配置: save 900 1save 300 10save 60 10000 持久化二:AOF方式 默认配置:appendonly no,appendfilename &qu ...

  9. 查询sql数据库中表占用的空间大小

    最近在给一家客户做系统维护时,需要查看数据库表的大小,相关的sql如下: 先在左上角下拉框中选对要查的数据库再执行以下语句 1. exec sp_spaceused '表名'          --( ...

  10. window.open post

    前端代码 expExcel(){ window.open(PreURL+'company_list_exp?keyword='+this.keyword+'&area_code='+this. ...