Tensorflow基础教程4:卷积神经网络(CNN)介绍

Tensorflow实现CNN 原理步骤 定义变量 => 搭建网络 => 选定优化目标 => 如何达到目标 => 启动 => 做记录/看效果 定义变量是为了承载网络的输入,tf 里面,可以是 Variable,也可以是 Placeholder,两者的区别是,在开始训练网络时,后者需要你喂给它数据,也就是在 run 的时候都需要加一个 feed_dict = {} 来指定一下输入的数据。 搭建网络比较直接,通过一些 api 就可以构建了。 选定优化... 阅读详情

在开始学习之前推荐大家可以多在  FlyAI竞赛服务平台 多参加训练和竞赛,以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

卷积神经网络 (Convolutional Neural Network, CNN)是一种结构类似于人类或动物的 视觉系统 的人工神经网络,包含一个或多个卷积层(Convolutional Layer)、池化层(Pooling Layer)和全连接层(Fully-connected Layer)。

  卷积层和池化层的工作原理

  卷积层(Convolutional Layer,以 tf.keras.layers.Conv2D 为代表)是 CNN 的核心组件,其结构与大脑的视觉皮层有类似之处。

  回忆我们之前建立的 神经细胞的计算模型 以及全连接层,我们默认每个神经元与上一层的所有神经元相连。不过,在视觉皮层的神经元中,情况并不是这样。你或许在生物课上学习过 感受野 (Receptive Field)这一概念,即视觉皮层中的神经元并非与前一层的所有神经元相连,而只是感受一片区域内的视觉信号,并只对局部区域的视觉刺激进行反应。CNN 中的卷积层正体现了这一特性。

  例如,下图是一个 7×7 的单通道图片信号输入:

  

在这里插入图片描述

 

  如果使用之前基于全连接层的模型,我们需要让每个输入信号对应一个权值,即建模一个神经元需要 7×7=49 个权值(加上偏置项是 50 个),并得到一个输出信号。如果一层有 N 个神经元,我们就需要 49N 个权值,并得到 N 个输出信号。

  而在 CNN 的卷积层中,我们这样建模一个卷积层的神经元:

  

在这里插入图片描述

 

  图中 3×3 的红框代表该神经元的感受野。由此,我们只需 3×3=9 个权值

  W = \begin{bmatrix}w_{1, 1} & w_{1, 2} & w_{1, 3} \\w_{2, 1} & w_{2, 2} & w_{2, 3} \\w_{3, 1} & w_{3, 2} & w_{3, 3}\end{bmatrix}

  W=⎣⎡​w1,1​w2,1​w3,1​​w1,2​w2,2​w3,2​​w1,3​w2,3​w3,3​​⎦⎤​ ,外加 1 个偏置项

  b ,即可得到一个输出信号。例如,对于红框所示的位置,输出信号即为对矩阵

  \begin{bmatrix}0 \times w_{1, 1} & 0 \times w_{1, 2} & 0 \times w_{1, 3} \\0 \times w_{2, 1} & 1 \times w_{2, 2} & 0 \times w_{2, 3} \\0 \times w_{3, 1} & 0 \times w_{3, 2} & 2 \times w_{3, 3}\end{bmatrix}

  ⎣⎡​0×w1,1​0×w2,1​0×w3,1​​0×w1,2​1×w2,2​0×w3,2​​0×w1,3​0×w2,3​2×w3,3​​⎦⎤​ 的所有元素求和并加上偏置项

  b,记作 a_{1, 1}

  不过,3×3 的范围显然不足以处理整个图像,因此我们使用滑动窗口的方法。使用相同的参数 W ,但将红框在图像中从左到右滑动,进行逐行扫描,每滑动到一个位置就计算一个值。例如,当红框向右移动一个单位时,我们计算矩阵

  \begin{bmatrix}0 \times w_{1, 1} & 0 \times w_{1, 2} & 0 \times w_{1, 3} \\1 \times w_{2, 1} & 0 \times w_{2, 2} & 1 \times w_{2, 3} \\0 \times w_{3, 1} & 2 \times w_{3, 2} & 1 \times w_{3, 3}\end{bmatrix}

  ⎣⎡​0×w1,1​1×w2,1​0×w3,1​​0×w1,2​0×w2,2​2×w3,2​​0×w1,3​1×w2,3​1×w3,3​​⎦⎤​ 的所有元素的和加上偏置项

  b 记作 a_{1, 2}

  由此,和一般的神经元只能输出 1 个值不同,这里的卷积层神经元可以输出一个 5×5 的矩阵

  A = \begin{bmatrix}a_{1, 1} & \cdots & a_{1, 5} \\ \vdots & & \vdots \\ a_{5, 1} & \cdots & a_{5, 5}\end{bmatrix}

  A=⎣⎢⎡​a1,1​⋮a5,1​​⋯⋯​a1,5​⋮a5,5​​⎦⎥⎤​.

  卷积示意图。一个单通道的 7×7 图像在通过一个感受野为 3×3 ,参数为 10 个的卷积层神经元后,得到 5×5 的矩阵作为卷积结果

  下面,我们使用 TensorFlow 来验证一下上图的计算结果。

  将上图中的输入图像、权值矩阵

  W 和偏置项

  b 表示为 NumPy 数组 image , W , b 如下:

  # TensorFlow 的图像表示为 [图像数目,长,宽,色彩通道数] 的四维张量

  # 这里我们的输入图像 image 的张量形状为 [1, 7, 7, 1]

  image = np.array([[

  [0, 0, 0, 0, 0, 0, 0],

  [0, 1, 0, 1, 2, 1, 0],

  [0, 0, 2, 2, 0, 1, 0],

  [0, 1, 1, 0, 2, 1, 0],

  [0, 0, 2, 1, 1, 0, 0],

  [0, 2, 1, 1, 2, 0, 0],

  [0, 0, 0, 0, 0, 0, 0]

  ]], dtype=np.float32)

  image = np.expand_dims(image, axis=-1)

  W = np.array([[

  [ 0, 0, -1],

  [ 0, 1, 0 ],

  [-2, 0, 2 ]

  ]], dtype=np.float32)

  b = np.array([1], dtype=np.float32)

  然后建立一个仅有一个卷积层的模型,用 W 和 b 初始化

  model = tf.keras.models.Sequential([

  tf.keras.layers.Conv2D(

  filters=1, # 卷积层神经元(卷积核)数目

  kernel_size=[3, 3], # 感受野大小

  kernel_initializer=tf.constant_initializer(W),

  bias_initializer=tf.constant_initializer(b)

  )]

  )

  最后将图像数据 image 输入模型,打印输出:

  output = model(image)

  print(tf.squeeze(output))

  程序运行结果为:

  tf.Tensor(

  [[ 6. 5. -2. 1. 2.]

  [ 3. 0. 3. 2. -2.]

  [ 4. 2. -1. 0. 0.]

  [ 2. 1. 2. -1. -3.]

  [ 1. 1. 1. 3. 1.]], shape=(5, 5), dtype=float32)

  可见与上图中矩阵 A 的值一致。

  还有一个问题,以上假设图片都只有一个通道(例如灰度图片),但如果图像是彩色的(例如有 RGB 三个通道)该怎么办呢?此时,我们可以为每个通道准备一个 3×3 的权值矩阵,即一共有 3×3×3=27 个权值。对于每个通道,均使用自己的权值矩阵进行处理,输出时将多个通道所输出的值进行加和即可。

  可能有读者会注意到,按照上述介绍的方法,每次卷积后的结果相比于原始图像而言,四周都会 “少一圈”。比如上面 7×7 的图像,卷积后变成了 5×5 ,这有时会为后面的工作带来麻烦。因此,我们可以设定 padding 策略。在 tf.keras.layers.Conv2D 中,当我们将 padding 参数设为 same 时,会将周围缺少的部分使用 0 补齐,使得输出的矩阵大小和输入一致。

  最后,既然我们可以使用滑动窗口的方法进行卷积,那么每次滑动的步长是不是可以设置呢?答案是肯定的。通过 tf.keras.layers.Conv2D 的 strides 参数即可设置步长(默认为 1)。比如,在上面的例子中,如果我们将步长设定为 2,输出的卷积结果即会是一个 3×3 的矩阵。

  事实上,卷积的形式多种多样,以上的介绍只是其中最简单和基础的一种。更多卷积方式的示例可见 Convolution arithmetic 。

  池化层(Pooling Layer)的理解则简单得多,其可以理解为对图像进行降采样的过程,对于每一次滑动窗口中的所有值,输出其中的最大值(MaxPooling)、均值或其他方法产生的值。例如,对于一个三通道的 16×16 图像(即一个 16*16*3 的张量),经过感受野为 2×2,滑动步长为 2 的池化层,则得到一个 8*8*3 的张量。

  使用 Keras 实现卷积神经网络

  卷积神经网络的一个示例实现如下所示,和 上节中的多层感知机 在代码结构上很类似,只是新加入了一些卷积层和池化层。这里的网络结构并不是唯一的,可以增加、删除或调整 CNN 的网络结构和参数,以达到更好的性能。

  class CNN(tf.keras.Model):

  def __init__(self):

  super().__init__()

  self.conv1 = tf.keras.layers.Conv2D(

  filters=32, # 卷积层神经元(卷积核)数目

  kernel_size=[5, 5], # 感受野大小

  padding='same', # padding策略(vaild 或 same)

  activation=tf.nn.relu # 激活函数

  )

  self.pool1 = tf.keras.layers.MaxPool2D(pool_size=[2, 2], strides=2)

  self.conv2 = tf.keras.layers.Conv2D(

  filters=64,

  kernel_size=[5, 5],

  padding='same',

  activation=tf.nn.relu

  )

  self.pool2 = tf.keras.layers.MaxPool2D(pool_size=[2, 2], strides=2)

  self.flatten = tf.keras.layers.Reshape(target_shape=(7 * 7 * 64,))

  self.dense1 = tf.keras.layers.Dense(units=1024, activation=tf.nn.relu)

  self.dense2 = tf.keras.layers.Dense(units=10)

  def call(self, inputs):

  x = self.conv1(inputs) # [batch_size, 28, 28, 32]

  x = self.pool1(x) # [batch_size, 14, 14, 32]

  x = self.conv2(x) # [batch_size, 14, 14, 64]

  x = self.pool2(x) # [batch_size, 7, 7, 64]

  x = self.flatten(x) # [batch_size, 7 * 7 * 64]

  x = self.dense1(x) # [batch_size, 1024]

  x = self.dense2(x) # [batch_size, 10]

  output = tf.nn.softmax(x)

  return output

  示例代码中的 CNN 结构图示

  将前节的 model = MLP() 更换成 model = CNN() ,输出如下:

  test accuracy: 0.988100

  可以发现准确率相较于前节的多层感知机有非常显著的提高。事实上,通过改变模型的网络结构(比如加入 Dropout 层防止过拟合),准确率还有进一步提升的空间。

  使用 Keras 中预定义的经典卷积神经网络结构

  tf.keras.applications 中有一些预定义好的经典卷积神经网络结构,如 VGG16 、 VGG19 、 ResNet 、 MobileNet 等。我们可以直接调用这些经典的卷积神经网络结构(甚至载入预训练的参数),而无需手动定义网络结构。

  例如,我们可以使用以下代码来实例化一个 MobileNetV2 网络结构:

  model = tf.keras.applications.MobileNetV2()

  当执行以上代码时,TensorFlow 会自动从网络上下载 MobileNetV2 网络的预训练权值,因此在第一次执行代码时需要具备网络连接。也可以通过将参数 weights 设置为 None 来随机初始化变量而不使用预训练权值。每个网络结构具有自己特定的详细参数设置,一些共通的常用参数如下:

  input_shape :输入张量的形状(不含第一维的 Batch),大多默认为 224 × 224 × 3 。一般而言,模型对输入张量的大小有下限,长和宽至少为 32 × 32 或 75 × 75 ;

  include_top :在网络的最后是否包含全连接层,默认为 True ;

  weights :预训练权值,默认为 'imagenet' ,即为当前模型载入在 ImageNet 数据集上预训练的权值。如需随机初始化变量可设为 None ;

  classes :分类数,默认为 1000。修改该参数需要 include_top 参数为 True 且 weights 参数为 None 。

  设置训练状态

  对于一些预定义的经典模型,其中的某些层(例如 BatchNormalization )在训练和测试时的行为是不同的。因此,在训练模型时,需要手动设置训练状态,告诉模型 “我现在是处于训练模型的阶段”。可以通过大连做人流多少钱 http://mobile.bhbyby.net/

  tf.keras.backend.set_learning_phase(True)

  进行设置,也可以在调用模型时通过将 training 参数设为 True 来设置。

  以下展示一个例子,使用 MobileNetV2 网络在 tf_flowers 五分类数据集上进行训练(为了代码的简短高效,在该示例中我们使用了 TensorFlow Datasets 和 tf.data 载入和预处理数据)。同时将 classes设置为 5,对应于 5 分类的数据集。

  import tensorflow as tf

  import tensorflow_datasets as tfds

  num_epoch = 5

  batch_size = 50

  learning_rate = 0.001

  dataset = tfds.load("tf_flowers", split=tfds.Split.TRAIN, as_supervised=True)

  dataset = dataset.map(lambda img, label: (tf.image.resize(img, (224, 224)) / 255.0, label)).shuffle(1024).batch(batch_size)

  model = tf.keras.applications.MobileNetV2(weights=None, classes=5)

  optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)

  for e in range(num_epoch):

  for images, labels in dataset:

  with tf.GradientTape() as tape:

  labels_pred = model(images, training=True)

  loss = tf.keras.losses.sparse_categorical_crossentropy(y_true=labels, y_pred=labels_pred)

  loss = tf.reduce_mean(loss)

  print("loss %f" % loss.numpy())

  grads = tape.gradient(loss, model.trainable_variables)

  optimizer.apply_gradients(grads_and_vars=zip(grads, model.trainable_variables))

  print(labels_pred)

更多精彩内容请访问FlyAI-AI竞赛服务平台;为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台;每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

挑战者,都在FlyAI!!!

多层神经网络 —— Sequential模型 前一节介绍说, 这里主要介绍 tf.keras 中的 Sequential 模型。 Sequential 是 Keras 中的一种神经网络框架,可以被认为是一个容器,其中封装了神经网络的结构。Sequential 模型只有一组输入和一组输出。各层之间按照先后顺序进行堆叠。前面一层的输出就是后面一次的输入。通过不同层的堆叠,构建出神经网络。 1、建立 Sequential 模型 model = tf.keras.Sequential() 这条语句表示建立了一个 Sequential 模型,并给它取了一个名 阅读详情

相关推荐

Python TensorFlow,卷积神经网络(CNN),手动实现卷积神经网络

普通的深层神经网络,层与层之间通过全连接进行稠密矩阵运算,矩阵中的权重系数比较多(参数多),影响效率且容易出现过拟合。 卷积神经网络的结构:卷积层、激活函数、池化层、全连接层。 卷积层:将原始图片通过Filter(过滤器,权重矩阵,卷积核,观察窗口),分割出局部信息,过滤器经过多次平移取样(步长)形成一个个局部信息然后组成卷积层,卷积层中的每一个单位点对应前面层的局部信息。(卷积的意义:一个点...

houyanhua1的专栏 3735

TensorFlow实战:Chapter-3(CNN-1-卷积神经网络简介)

卷积神经网络简介 CNN的提出 CNN的壮大 卷积神经网络结构 卷积神经网络的常见网络结构 卷积 信号处理中的卷积 图像处理中的卷积 卷积的类型的参数 卷积层 卷积层原理 卷积层算法 卷积层特点 权值共享 多卷积核 池化层 池化层原理 池化层算法 池化层特点 池化单元的平移不变性 显著减少参数数量 TensorFlow中的CNN 卷积 strides参数 padding参数 tfnnconv2d t

DFan的NoteBook 2万+

深度学习100例 | 第25天-卷积神经网络(CNN):中文手写数字识别

大家好,我是『K同学啊』! 接着上一篇文章 深度学习100例 | 第24天-卷积神经网络(Xception):动物识别,我用Xception模型实现了对狗、猫、鸡、马等四种动物的识别,带大家了解了Xception的构建。这次我们来 实现一下中文版的 手写数字识别 ,听到手写数字识别或许会觉得简单,今天可能不一定哈。 本次的重点: 数据检查:在开始之前做一系列检查避免后期由于数据原因出现的bug。 各项指标评估部分 ???? 我的环境: 语言环境:Python3.6.5 编译器:jupyter note

“365天深度学习训练营”报名进行中~ 2736

卷积神经网络 (CNN) 与 TensorFlow 教程Convolutional Neural Networks (CNN) with TensorFlow Tutorial

这是通过应用一些聚合操作来完成的,这些操作减少了特征映射(卷积矩阵)的维度,从而减少了训练网络时使用的内存。CNN 的架构试图模仿由多层组成的人类视觉系统中的神经元结构,其中每一层都负责检测数据中的特定特征。内核的每个元素的权重在网格中表示。将 summary() 函数应用于模型后,我们对模型的架构进行了全面的总结,其中包含有关每一层、其类型、输出形状和可训练参数总数的信息。在卷积层中,应用了几个大小相等的过滤器,每个过滤器用于从图像中识别特定的图案,例如数字的弯曲、边缘、数字的整体形状等。

wly476923083的博客 1674

深度学习100例-卷积神经网络(CNN)识别神奇宝贝小智一伙 | 第16天

文章目录一、前期工作1. 设置GPU2. 导入数据3. 查看数据二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集三、调用官方网络模型四、设置动态学习率五、编译六、训练模型七、模型评估八、保存and加载模型九、预测 一、前期工作 今天的东西可能过于硬核!你准备好了吗?⏳ ???? 我的环境: 语言环境:Python3.6.5 编译器:jupyter notebook 深度学习环境:TensorFlow2.4.1 数据链接: https://pan.baidu.com/s/1cV

“365天深度学习训练营”报名进行中~ 4936

Autosar Os降低CPU负载的方案总结

由于各个项目的实际场景不尽相同,可能需要有针对性的对症优化。如果你还有别的一些优化手段欢迎留言交流。

3677

4--tensorflow CNN 卷积神经网络

1.什么是卷积神经网络 人工神经网络的一种结构,最常见应用于图片识别,已可以用于其他方面。 卷积也就是说神经网络不再是对每个像素的输入信息做处理了,而是图片上每一小块像素区域进行处理, 这种做法加强了图片信息的连续性. 在每一次卷积的时候, 神经层可能会无意地丢失一些信息. 这时, 池化 (pooling) 就可以很好地解决这一问题. 而且池化是一个筛选过滤的过程, 能将 layer 中有用的信息...

weixin_43955530的博客 389

S32K144之芯片锁死解锁——关闭debug端口

S32K144之芯片锁死及解锁 经常捣鼓单片机就会发现,时常会因为某些操作不当导致芯片锁死情况的发生,通过Jlink我们可以读到芯片的ID,但是无法进行Debug,这很是让人苦恼。 基于S32K144的芯片锁死,一般有如下几种可能: 1、时钟配置异常,过高的配置时钟频率以及不配置时钟,都有可能造成芯片保护锁死,我就曾经因为不注意把时钟配置代码注释掉,导致芯片锁死。 2、我是微软雅黑烧写断电,如果在...

weixin_41935674的博客 1万+

TensorFlow实战笔记之(4):卷积神经网络(CNN) 实现手写数字识别

一、引言 前一篇博文使用单隐层的全连接神经网络,并结合一些神经网络的优化策略,如指数衰减学习率、正则化、Relu激活函数和Adam优化算法等,用包含100个隐层神经元的神经网络实现了MNIST数据集上手写数字识别98%的准确率。但是全连接神经网络也是有局限的,即使使用很深的网络、很多的隐层结点、很大的迭代轮数,也很难在MNIST数据集上得到99%以上的准确率。不过,卷积神经网络的出现解决了这一问...

polyhedronx的博客 6518

利用GAT(图论分析工具箱)构建并分析大脑结构协变网络学习笔记

前言 前面我学习了利用DTI构建白质纤维脑网络,并采用GRETNA计算了小世界网络属性。阅读文献发现可以利用灰质体积或皮层指标(皮层厚度、折叠指数、沟深)等构建结构协变网络再进行网络拓扑属性的计算。因此,我采用前面提取的灰质体积和皮质数据进行了结构协变网络分析,特此写下笔记以便后面的学习。 一、数据准备 二、构建结构协变网络 三、全局属性的统计分析 四、局部属性的统计分析 五、网络攻击分析 六、度的分布 ..................

weixin_52073820的博客 7496

SAP ABAP Cloud 发展简史

其中用于云开发的 ABAP,官方术语是 「ABAP in the Cloud」,本文后续叙述方便起见,简称为 「ABAP Cloud」. 它涵盖了标准 ABAP 语言范围的一个子集,只能访问受限的 API,用于构建 SAP BTP ABAP 环境以及 SAP S/4HANA Cloud ABAP 环境上的云解决方案。SAP ABAP 平台是用于 SAP ECC、SAP S/4HANA 和 SAP BTP 等产品的技术平台,也是 ABAP 应用程序的开发和运行环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1392

TensorFlow框架(4)之CNN卷积神经网络详解

1. 卷积神经网络 1.1 多层前馈神经网络   多层前馈神经网络是指在多层的神经网络中,每层神经元与下一层神经元完全互连,神经元之间不存在同层连接,也不存在跨层连接的情况,如图 11所示。 图 11 对于上图中隐藏层的第j个神经元的输出可以表示为: 其中,f是激活函数,bj为每个神经元的偏置。 1.2 卷积神经网络 1.2.1 网络结构   卷积神经网...

a567676的博客 938

【python股票价格预测】基于CNN-LSTM的股票价格预测(附python代码)

【python股票价格预测】基于CNN-LSTM的股票价格预测(附python代码)

k8291121的博客 2008

(4-3)TensorFlow卷积神经网络实战:CNN识别器实战

请看下面的实例文件main.py,功能是基于CIFAR-10数据集开发一个CNN物体识别模型,能够分类出“飞机”、“汽车”、“鸟”、“猫”、“鹿”、“狗”、“青蛙”、“马”、“船”和“卡车”。请看下面的实例文件clothing.py,功能是基于Fashion-MNIST数据集开发一个CNN服饰识别器能够分类出“T恤/上衣”、“裤子”、“套头衫”、“连衣裙”、“外套”、“凉鞋”、“衬衫”、“运动鞋”、“包”、“踝靴”。执行后输出如下训练过程,并使用标签展示训练集中的前25幅图像,如图4-10所示。

码农三叔 714

AD9361功能介绍和使用

AD9361使用分数分频锁相环(PLL)来产生发射机和接收机本地振荡器(LO)频率和BB PLL。BB PLL 可用于数据转换、数字滤波器和 |/O 端口。PLL的参考时钟可以由外部振荡器或外部晶体(XO)和数字可编程片内可变电容提供,电容微调产生参考时钟频率,XO和微调电容的组合统称为DCXO。有多个天线输入的分集系统。接收链数据首先经过低噪声放大器(LNA),然后是同相(1)和正交(Q)放大器,混频器和频带整形滤波器,可将接收到的信号下变频为基带以进行数字化。时分双工(TDD)和频分双工(FDD)。。。

wangjie36的博客 1万+

Claude Code 实战 从零教你用 Claude Code 干活

Claude Code 实用指南:AI 编程助手的核心功能与使用技巧 Claude Code 是 Anthropic 推出的智能编程助手,可直接在本地环境中执行操作,相比传统 AI 对话工具具有显著优势:能直接读取项目文件、自动执行修改、记忆项目规则,并支持连接外部服务。本文详解其安装配置、三大核心场景(资料搜索、网页抓取、文章撰写)及进阶功能(Skills、MCP协议、斜杠命令)。特别提供了工作模式切换、CLAUDE.md配置文件等实用技巧,并附常见问题解决方案,帮助用户高效利用这一"坐在身边的

2401_84052244的博客 7455

4.3CNN卷积神经网络最详细最容易理解--tensorflow源码MLP对比

自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html 1.1 CNN卷积神经网络 1.1.1 什么是CNN卷积神经网络 CNN(convolutional neural network)卷积神经网络是一种具有局部连接和权重共享等特性的深层前馈神经网络。简单来说神经网络都是为了提取特征。卷积提取特征的方式如下图所示,加入图片是5*5个像素的图片,用一个3*3的卷积核在...

baochunlei1的博客 808

4.4 线上vs离线:使用 Langfuse 实现智能体的全方位无死角评估

本文介绍了如何利用Langfuse工具实现AI智能体的全方位评估,包括线上和离线两种评估方式。线上评估通过收集用户实时反馈(如点赞/点踩)来监控真实表现,而离线评估则通过创建标准化数据集进行批量测试和自动评分。文章详细演示了如何为"旅小智"AI应用添加反馈功能、创建评估数据集,并利用Langfuse SDK进行自动化评估和分析。通过这两种评估方式的结合,开发者可以建立数据驱动的AI质量保障体系,实现持续优化和版本迭代。

yonggeit的博客 3311

基于Tensorflow和CNN实现验证码图片识别

作为一只入门的DL小白,在此总结了自己学习CNN识别验证码图片的心得。

Petrichoryi的博客 5660

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

卷积神经网络(CNN)天气识别

color_channels 为 (R,G,B) 分别对应 RGB 的三个颜色通道(color channel)。在此示例中,我们的 CNN 输入,fashion_mnist 数据集中的图片,形状是。我们可以通过class_names输出数据集的标签。标签将按字母顺序对应于目录名称。卷积神经网络(CNN)的输入是张量 (Tensor) 形式的。我们需要在声明第一层时将形状赋值给参数。,包含了图像高度、宽度及颜色信息。文件夹中以各自名字命名的子文件夹中。方法将磁盘中的数据加载到。

weixin_45822638的博客 1171

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TensorFlow实战:Chapter-4(CNN-2-经典卷积神经网络(AlexNet、VGGNet))

引言 AlexNet 简介 AlexNet的特点 AlexNet论文分析 引言 原文分析 介绍 原文分析 数据集 原文分析 网络架构 原文分析 注解 AlexNet在TensorFlow里面实现 VGGNet 引言 上一章节,我们学习了CNN模型的发展历史和应用领域,同时细致的剖析了模型的结构和原理,也简单的学习了在TensorFlow内有关CNN的ap

DFan的NoteBook 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Tensorflow深度学习笔记4 卷积神经网络(CNN)介绍和简单示例(LeNet-5)

本文内容来自《Tensorflow深度学习算法原理与编程实战》第七章 卷积 不再详细介绍卷积运算的数学原理。在实际运用中,卷积运算的形式为: 其中,I为输入二位网络数据,K为卷积核。 概念:感受野 在处理图像这样的高维度输入时,让每个神经元都与前一层中的所有神经元进行全连接是不现实的。相反,我们让每个神经元只与输入数据的一个局部区域连接。该连接的空间大小叫做神经元的感受野(receptive field),它的尺寸是一个超参数(其实就是滤波器的空间尺寸)。在深度方向上,这个连接的大小总是和输入量的深度相等

xuyifancsdn的博客 1024

4位数字验证码图片识别 +tensorflow+CNN

4位数字验证码图片识别 +tensorflow+CNN 跟着视频写了以下代码,精度设置在0.8的时候保存模型,然后验证结果还不错。有兴趣的同学可以一起讨论 import numpy as np import tensorflow as tf from captcha.image import ImageCaptcha import numpy as np import matplotlib...

大天的博客 9015
上一篇: Tensorflow基础教程2:Tensorflow模型建立与训练
下一篇: Tensorflow基础教程5:循环神经网络(RNN)讲解
iFlyAI
博客等级 码龄9年 238粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值