腾讯云做网站选哪个,这几年做那些网站致富,wordpress文章排版插件,网站推销策划方案文章目录目录1.神经网络知识概览1.1深度学习顶会1.2相关比赛1.3神经网络知识概览1.4神经网络编程一般实现过程2.简单神经网络ANN2.1 数据集#xff1a;2.2 网络结构#xff1a;2.3 代码实现2.3.1 读取数据#xff0c;并做处理2.3.2 构建网络结构2.3.3 训练网络目录
1.神经网…
文章目录目录1.神经网络知识概览1.1深度学习顶会1.2相关比赛1.3神经网络知识概览1.4神经网络编程一般实现过程2.简单神经网络ANN2.1 数据集2.2 网络结构2.3 代码实现2.3.1 读取数据并做处理2.3.2 构建网络结构2.3.3 训练网络目录
1.神经网络知识概览
1.1深度学习顶会
CVPR : IEEE Conference on Computer Vision and Pattern Recognition CVPR是计算机视觉与模式识别顶会 ICCVIEEE International Conference on Computer Vision ICCV论文录用率非常低是三大会议中公认级别最高的 ECCVEuropean Conference on Computer Vision
1.2相关比赛
1.ImageNet
ImageNet 数据集最初由斯坦福大学李飞飞等人在 CVPR 2009 的一篇论文中推出 2.webvision
1.3神经网络知识概览 1.4神经网络编程一般实现过程
1.数据预处理 2.定义神经网络结构 3.初始化网络模型中的参数 4.开始训练模型
loop(number_iterations):forward propagationcompute costbackward propagationupdate parameters5.对新的数据进行预测
2.简单神经网络ANN
2.1 数据集
训练集 测试集训练集训练集 评估集 数据信息
2.2 网络结构
网络结构 linear - relu - linear - relu - linear - softmax网络结构12288 - 25 - 12 - 6迭代次数1000学习率0.0001minibatch_size32优化算法Adam将RGB图片转换为向量损失空间结构信息出现过拟合应该使用正则化L2、Dropout、早停
2.3 代码实现
2.3.1 读取数据并做处理
import math
import h5py
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import scipy
from PIL import Image
from scipy import ndimage
from tensorflow.python.framework import ops
from improv_utils import *%matplotlib inline
np.random.seed(1)# 下载数据
X_train_orig, Y_train_orig, X_test_orig, Y_test_orig, classes load_dataset()# 显示图片
index 2
plt.imshow(X_train_orig[index])
plt.show()
print(y str(np.squeeze(Y_train_orig[:, index])))# 将数据平铺归一化标签one-hot
X_train_flatten X_train_orig.reshape(X_train_orig.shape[0], -1).T
X_test_flatten X_test_orig.reshape(X_test_orig.shape[0], -1).TX_train X_train_flatten/255.
X_test X_test_flatten/255.Y_train convert_to_one_hot(Y_train_orig, 6)
Y_test convert_to_one_hot(Y_test_orig, 6)print (number of training examples str(X_train.shape[1]))
print (number of test examples str(X_test.shape[1]))
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))y 2 number of training examples 1080 number of test examples 120 X_train shape: (12288, 1080) Y_train shape: (6, 1080) X_test shape: (12288, 120) Y_test shape: (6, 120)
2.3.2 构建网络结构
# 1-1、创建占位符
def create_placeholders(n_x, n_y):Creates the placeholders for the tensorflow session.Arguments:n_x -- scalar, size of an image vector (num_px * num_px 64 * 64 * 3 12288)n_y -- scalar, number of classes (from 0 to 5, so - 6)Returns:X -- placeholder for the data input, of shape [n_x, None] and dtype floatY -- placeholder for the input labels, of shape [n_y, None] and dtype floatTips:- You will use None because it lets us be flexible on the number of examples you will for the placeholders.In fact, the number of examples during test/train is different.X tf.placeholder(tf.float32, shape [n_x, None])Y tf.placeholder(tf.float32, shape [n_y, None])return X, Y# 1-2、初始化参数
def initialize_parameters():Initializes parameters to build a neural network with tensorflow. The shapes are:W1 : [25, 12288]b1 : [25, 1]W2 : [12, 25]b2 : [12, 1]W3 : [6, 12]b3 : [6, 1]Returns:parameters -- a dictionary of tensors containing W1, b1, W2, b2, W3, b3tf.set_random_seed(1) # so that your random numbers match oursW1 tf.get_variable(W1, [25,12288], initializer tf.contrib.layers.xavier_initializer(seed 1))b1 tf.get_variable(b1, [25,1], initializer tf.zeros_initializer())W2 tf.get_variable(W2, [12,25], initializer tf.contrib.layers.xavier_initializer(seed 1))b2 tf.get_variable(b2, [12,1], initializer tf.zeros_initializer())W3 tf.get_variable(W3, [6,12], initializer tf.contrib.layers.xavier_initializer(seed 1))b3 tf.get_variable(b3, [6,1], initializer tf.zeros_initializer())parameters {W1: W1,b1: b1,W2: W2,b2: b2,W3: W3,b3: b3}return parameters# 1-3、TensorFlow中的前向传播
# tf中前向传播停止在z3是因为tf中最后的线性层输出是被作为输入计算loss不需要a3
def forward_propagation(X, parameters):Implements the forward propagation for the model: LINEAR - RELU - LINEAR - RELU - LINEAR - SOFTMAXArguments:X -- input dataset placeholder, of shape (input size, number of examples)parameters -- python dictionary containing your parameters W1, b1, W2, b2, W3, b3the shapes are given in initialize_parametersReturns:Z3 -- the output of the last LINEAR unitW1 parameters[W1]b1 parameters[b1]W2 parameters[W2]b2 parameters[b2]W3 parameters[W3]b3 parameters[b3]Z1 tf.add(tf.matmul(W1, X), b1) # Z1 np.dot(W1, X) b1A1 tf.nn.relu(Z1) # A1 relu(Z1)Z2 tf.add(tf.matmul(W2, A1), b2) # Z2 np.dot(W2, a1) b2A2 tf.nn.relu(Z2) # A2 relu(Z2)Z3 tf.add(tf.matmul(W3, A2), b3) # Z3 np.dot(W3,Z2) b3return Z3# 1-4、计算成本函数
def compute_cost(Z3, Y):Computes the costArguments: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 Z3Returns:cost - Tensor of the cost function# to fit the tensorflow requirement for tf.nn.softmax_cross_entropy_with_logits(...,...)logits tf.transpose(Z3)labels tf.transpose(Y)# 函数输入shape 样本数类数# tf.reduce_mean()cost tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits logits, labels labels))return cost
def predict(X, parameters):W1 tf.convert_to_tensor(parameters[W1])b1 tf.convert_to_tensor(parameters[b1])W2 tf.convert_to_tensor(parameters[W2])b2 tf.convert_to_tensor(parameters[b2])W3 tf.convert_to_tensor(parameters[W3])b3 tf.convert_to_tensor(parameters[b3])params {W1: W1,b1: b1,W2: W2,b2: b2,W3: W3,b3: b3}x tf.placeholder(float, [12288, 1])z3 forward_propagation(x, params)p tf.argmax(z3)with tf.Session() as sess:prediction sess.run(p, feed_dict {x: X})return prediction
2.3.3 训练网络
my_image my_image.jpg
fname images/ my_imageimage np.array(ndimage.imread(fname, flattenFalse))
my_image scipy.misc.imresize(image, size(64,64)).reshape((1, 64*64*3)).T
parameters model(X_train, Y_train, X_test, Y_test)plt.imshow(image)
plt.show()my_image_prediction predict(my_image, parameters)
print(Your algorithm predicts: y str(np.squeeze(my_image_prediction)))