当前位置: 首页 > news >正文

北京市建设网站构建新发展格局

北京市建设网站,构建新发展格局,自己做服务器的网站吗,网站建设工作推进会上的讲话课程来源#xff1a;人工智能实践:Tensorflow笔记2 文章目录前言一、搭建网络八股sequential1.函数介绍2.6步法实现鸢尾花分类二、搭建网络八股class1.创建自己的神经网络模板#xff1a;2.调用自己创建的model对象三、MNIST数据集1.用sequential搭建网络实现手写数字识别2.用…课程来源人工智能实践:Tensorflow笔记2 文章目录前言一、搭建网络八股sequential1.函数介绍2.6步法实现鸢尾花分类二、搭建网络八股class1.创建自己的神经网络模板2.调用自己创建的model对象三、MNIST数据集1.用sequential搭建网络实现手写数字识别2.用类搭建网络实现手写数字识别四、FASHION数据集用sequential搭建网络实现衣裤识别总结前言 本讲目标:使用八股搭建神经网络 神经网络搭建八股 iris代码复现 MNIST数据集 训练MNIST数据集 Fashion数据集 一、搭建网络八股sequential 使用六步法使用TensorFlow的API: tf.keras搭建网络八股 1、import 导入相关模块 2、train、test 告知要喂入网络的训练集、测试集是什么也就是要指定训练集、测试集的输入特征和训练集的标签 3、model tf.keras.models.Sequential 在sequential()中搭建网络结构逐层描述每层网络相当于走了一遍前向传播 4、model.compile 在compile中配置训练方法告知训练时选择哪种优化器选择哪个损失函数选择哪种评测指标 5、model.fit 在fit中执行训练过程告知训练集和测试集的输入特征和标签告知每个batch是多少告知要迭代多少次数据集 6、model.summary 用summary打印出网络的结构和参数统计 1.函数介绍 sequential()用法 model tf.keras.models.Sequential([网络结构]) #描述各层网络 网络结构举例 拉直层tf.keras.layers.Flatter() 全连接层tf.keras.layers.Dense(神经元个数,activation“激活函数”,kernel_regularizer哪种正则化) activation(字符串给出) 可选relu、softmax、signoid、tanh kernel_regularizer可选:kernel_regularizer.l1()、kernel_regularizer.l2() 卷积层tf.keras.layers.Conv2D(filters卷积核个数,kernel_size卷积核尺寸,strides卷积步长,padding“vaild” or “same”) LSTM层tf.kreas.layers.LSTM() compile() 用法 model.compile(optimizer 优化器,loss 损失函数,metrics[“准确率”]) optimizer 可选 ‘sgd’ or tf.keras.optimizers.SGD(lr学习率,momentum动量参数) ‘adagrad’ or tf.keras.optimizers.Adagrad(lr学习率) ‘adadelta’ or tf.keras.optimizers.Adadelta(lr学习率) ‘adam’ or tf.keras.optimizers.Adam(lr学习率,beta_10.9,beta_20.999) loss 可选 ‘mse’ or tf.keras.losses.MeanSquaredError() ‘sparse_categorical_crossentropy’ or tf.keras.losses.SparseCategoricalCrossentropy(from_logits False) (有的神经网络的输出是经过了softmax等函数的概率分布有些则不经概率分布直接输出from_logits 是在询问是否是原始输出) Metrics 可选 ‘accuracy’:y_pred和y都是数值如y_pred[1] y[1] ‘categorical_accuracy’:y_pred 和 y 都是独热码(概率分布),如y_pred[0,1,0], y[0.5,0.5,0.5] ‘sparse_categorical_accuracy’:y_pred是数值y是独热编码,y_pred[1],y[0.5,0.5,0.5] fit()用法 model.fit(训练集的输入特征,训练集的标签, ​ batch_size ,epochs , ​ validation_data (测试集的输入特征,测试集的标签), ​ validation_split 从训练集划分多少比例给测试集, ​ validation_freq 多少次epoch测试一次) model()用法 model.summary() 2.6步法实现鸢尾花分类 代码如下 import tensorflow as tf from sklearn import datasets import numpy as np#由于这里是选择从训练集划分出测试集所以不需要单独导入test x_train datasets.load_iris().data y_train datasets.load_iris().target #打乱顺序 np.random.seed(116) np.random.shuffle(x_train) np.random.seed(116) np.random.shuffle(y_train) tf.random.set_seed(116) #3个神经元softmax激活L2正则化 model tf.keras.models.Sequential([tf.keras.layers.Dense(3, activationsoftmax, kernel_regularizertf.keras.regularizers.l2()) ]) #SGD优化器、学习率0.1使用SparseCategoricalCrossentropy作为损失函数由于神经网络末端使用softmax函数输出为概率分布所以from_logits为false #鸢尾花数据集给的标签为0,1,2神经网络前向传播的输出是概率分布使用sparse_categorical_accuracy作为准确率 model.compile(optimizertf.keras.optimizers.SGD(lr0.1),losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[sparse_categorical_accuracy]) #输入训练数据一次喂入32组数据迭代500次从训练集中划分出20%作为测试集每迭代20次训练集就要在测试集中验证一次准确率 model.fit(x_train, y_train, batch_size32, epochs500, validation_split0.2, validation_freq20) #打印网络结构和参数统计 model.summary()打印结果如下 二、搭建网络八股class 用sequential可以搭建出上层输出就是下层输入的顺序网络结构但是无法写出一些带有跳连的非顺序网络结构。这时我们可以选择用类class搭建神经网络结构 使用六步法使用TensorFlow的API: tf.keras搭建网络八股 1、import 2、train、test 3、class MyMode(Model) modelMyModel 4、model.compile 5、model.fit 6、model.summary 1.创建自己的神经网络模板 伪代码如下 class MyModel(Model):def _init_(self):super(MyModel,self).init_()定义网络结构块def call(self,x):调用网络结构块实现前向传播return ymodelMyModel()代码如下 class IrisModel(Model):def __init__(self):super(IrisModel, self).__init__()#鸢尾花分类的单层网络是含有3个神经元的全连接self.d1 Dense(3, activationsoftmax, kernel_regularizertf.keras.regularizers.l2())def call(self, x):y self.d1(x)return y #实例化名为model的对象 model IrisModel()2.调用自己创建的model对象 代码如下 import tensorflow as tf from tensorflow.keras.layers import Dense from tensorflow.keras import Model from sklearn import datasets import numpy as npx_train datasets.load_iris().data y_train datasets.load_iris().targetnp.random.seed(116) np.random.shuffle(x_train) np.random.seed(116) np.random.shuffle(y_train) tf.random.set_seed(116)class IrisModel(Model):def __init__(self):super(IrisModel, self).__init__()self.d1 Dense(3, activationsoftmax, kernel_regularizertf.keras.regularizers.l2())def call(self, x):y self.d1(x)return ymodel IrisModel()model.compile(optimizertf.keras.optimizers.SGD(lr0.1),losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[sparse_categorical_accuracy])model.fit(x_train, y_train, batch_size32, epochs500, validation_split0.2, validation_freq20) model.summary() 打印结果如下 三、MNIST数据集 MNIST数据集 提供6万张28x28像素点的0~9手写数字图片和标签用于训练。 提供1万张28x28像素点的0~9手写数字图片和标签用于测试。 导入数据集 mnist tf.keras.datasets.mnist (x_train,y_train),(x_test,y_test)mnist.load_data() 作为输入特征输入神经网络时将数据拉伸为一维数组 tf.keras.layers.Flatter() 1.用sequential搭建网络实现手写数字识别 code: import tensorflow as tfmnist tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) mnist.load_data() #对输入网络的特征进行归一化使原本0~255的灰度值转化为0~1的小数。 #把输入特征的值变小更有利于神经网络吸收 x_train, x_test x_train / 255.0, x_test / 255.0 #用Sequential搭建网络 model tf.keras.models.Sequential([tf.keras.layers.Flatten(), #把输入特征拉直为1维数组即78428*28个数值tf.keras.layers.Dense(128, activationrelu), #定义第一层网络有128个神经元relu为激活函数tf.keras.layers.Dense(10, activationsoftmax) #定义第二层网络有10个神经元softmax使输出符合概率分布 ]) #用compile配置训练方法 model.compile(optimizeradam, losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[sparse_categorical_accuracy]) #每一轮训练集迭代执行一次测试集评测随着迭代轮数增加手写数字识别准确率不断提升使用测试集 model.fit(x_train, y_train, batch_size32, epochs5, validation_data(x_test, y_test), validation_freq1) model.summary()print result: Train on 60000 samples, validate on 10000 samples Epoch 1/5 60000/60000 [] - 4s 62us/sample - loss: 0.2589 - sparse_categorical_accuracy: 0.9262 - val_loss: 0.1373 - val_sparse_categorical_accuracy: 0.9607 Epoch 2/5 60000/60000 [] - 2s 40us/sample - loss: 0.1114 - sparse_categorical_accuracy: 0.9676 - val_loss: 0.1027 - val_sparse_categorical_accuracy: 0.9699 Epoch 3/5 60000/60000 [] - 3s 43us/sample - loss: 0.0762 - sparse_categorical_accuracy: 0.9775 - val_loss: 0.0898 - val_sparse_categorical_accuracy: 0.9722 Epoch 4/5 60000/60000 [] - 2s 41us/sample - loss: 0.0573 - sparse_categorical_accuracy: 0.9822 - val_loss: 0.0851 - val_sparse_categorical_accuracy: 0.9752 Epoch 5/5 60000/60000 [] - 2s 41us/sample - loss: 0.0450 - sparse_categorical_accuracy: 0.9858 - val_loss: 0.0846 - val_sparse_categorical_accuracy: 0.9738 Model: “sequential” Layer (type) Output Shape Param # flatten (Flatten) multiple 0 dense (Dense) multiple 100480 Total params: 101,770 Trainable params: 101,770 Non-trainable params: 0 可以观察到随着迭代轮数增加准确率也不断提升。训练的参数也是极其多的达到10万多个。 2.用类搭建网络实现手写数字识别 只是实例化model的方法不同其他与用sequential搭建网络实现手写数字识别一致。 init函数中定义了call函数中所用到的层call函数中从输入x到输出y走过一次前向传播返回输出y import tensorflow as tf from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras import Modelmnist tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) mnist.load_data() x_train, x_test x_train / 255.0, x_test / 255.0class MnistModel(Model):def __init__(self):super(MnistModel, self).__init__()self.flatten Flatten()self.d1 Dense(128, activationrelu)self.d2 Dense(10, activationsoftmax)def call(self, x):x self.flatten(x)x self.d1(x)y self.d2(x)return ymodel MnistModel()model.compile(optimizeradam,losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[sparse_categorical_accuracy])model.fit(x_train, y_train, batch_size32, epochs5, validation_data(x_test, y_test), validation_freq1) model.summary() 四、FASHION数据集 FASHION数据集 提供6万张 28x28像素点的衣裤等图片和标签用于训练. 提供1万张28x28像素点的衣裤等图片和标签用于测试。 导入数据集 fashion tf.keras.datasets.fashion_mnist (x_train, y_train),(x_test, y_test) fashion.load_data() 用sequential搭建网络实现衣裤识别 加载数据需要较长时间需耐心等待 import tensorflow as tffashion tf.keras.datasets.fashion_mnist (x_train, y_train),(x_test, y_test) fashion.load_data() x_train, x_test x_train / 255.0, x_test / 255.0model tf.keras.models.Sequential([tf.keras.layers.Flatten(),tf.keras.layers.Dense(128, activationrelu),tf.keras.layers.Dense(10, activationsoftmax) ])model.compile(optimizeradam,losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[sparse_categorical_accuracy])model.fit(x_train, y_train, batch_size32, epochs5, validation_data(x_test, y_test), validation_freq1) model.summary() 用类的方法也可以实现这里不做重复展开套用八股模板即可。 总结 这个单元将整个训练的构架走了一遍并且以八股的形式做了总结收获很大。 课程链接:MOOC人工智能实践TensorFlow笔记2
http://www.pierceye.com/news/67656/

相关文章:

  • 程序员做网站外快制作小程序代码
  • 山东聊城网站建设做网站网站需要多少钱
  • 口碑好门户网站开发建设一个普通的网站需要多少钱
  • 不开网店怎么做淘宝网站网站建设在整体布局有哪些要求
  • 怎样做营销型网站推广pptwordpress手机适配
  • 贵州省铜仁市城乡建设局网站适合翻译做兼职的网站
  • 网页设计与网站建设在线作业答案西安seo和网络推广
  • php网站开发职责河南建设人才信息网
  • 学校网站建设合同aso关键词优化计划
  • 中山网页建站模板建网页要钱吗
  • 帝国cms网站模板网站开发前台代码和后台代码
  • 江苏省建设局网站首页网友
  • 网站建设品牌公司排名免费教做面食的网站
  • wordpress风格济南seo优化公司助力排名
  • 二手图书交易网站建设企业网站制作步骤
  • edu网站一般谁做的wordpress 访问空白
  • 陈塘庄做网站公司wordpress 网站建设中
  • 转转假网站怎么做国外优秀的网站建设公司
  • 专业做租赁的平台网站有哪些wordpress主题git下载失败
  • 设计企业网站六安公共招聘网
  • 公司网站建设的项目工作分解结构铜仁建设集团招聘信息网站
  • 优秀手机网站模板图片网站建设有哪些公司好
  • 蒲城网站建设物流企业网站建设特色
  • 网站 收费玉林市建设工程交易中心网站
  • 怎么自己做网站的推广广州软件学院
  • 建个什么网站吗360做网站和推广怎么样
  • 济南网站建设安卓版wordpress预格式化
  • 柳江区城乡住房建设局网站福州有网站建设的公司
  • ps设计网页手机网站优化技巧
  • 做壁纸网站好腾讯云建设网站视频