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

做阿里巴巴网站找谁搜索引擎营销是什么意思

做阿里巴巴网站找谁,搜索引擎营销是什么意思,网上开店基本流程,网页设计怎样做卷积神经网络(CNN)简单原理与简单代码实现 卷积神经网络(CNN)简单原理基本原理卷积层(Convolutional Layer):激活层(Activation Layer):池化层(Po…

卷积神经网络(CNN)简单原理与简单代码实现

  • 卷积神经网络(CNN)简单原理
    • 基本原理
      • 卷积层(Convolutional Layer):
      • 激活层(Activation Layer):
      • 池化层(Pooling Layer):
      • 全连接层(Fully Connected Layer):
        • 主要特点
      • 简单代码实现

卷积神经网络(CNN)简单原理

卷积神经网络(Convolutional Neural Network, CNN)是深度学习领域中一种重要的网络结构,特别适用于处理具有网格结构的数据,如图像。其基本原理和主要特点如下:

基本原理

卷积层(Convolutional Layer):

卷积层是CNN的核心,它通过卷积操作从输入数据中提取特征。
卷积操作是使用一个或多个可学习的滤波器(或称卷积核)在输入数据上滑动,计算滤波器与输入数据对应区域的点积,生成特征图(Feature Map)。
每个滤波器都可以提取输入数据的一种特征,因此,使用多个滤波器可以提取多种特征。

激活层(Activation Layer):

激活层通常紧跟在卷积层之后,用于增加模型的非线性。
常用的激活函数包括ReLU(Rectified Linear Unit)、Sigmoid、Tanh等。其中,ReLU函数因其简单有效而被广泛使用。

池化层(Pooling Layer):

池化层用于降低特征图的维度,减少计算量,并增强模型的鲁棒性。
常见的池化操作有最大池化(Max Pooling)和平均池化(Average Pooling)。最大池化取池化区域内的最大值作为输出,而平均池化则取平均值。

全连接层(Fully Connected Layer):

全连接层通常位于CNN的末端,用于将前面提取到的特征映射到样本的类别上。
在全连接层中,每个神经元都与前一层的所有神经元相连。

主要特点

局部连接:卷积层中的每个神经元仅与输入数据的一个局部区域相连,这有助于捕捉图像的局部特征。
参数共享:同一个卷积核在输入数据的不同位置共享相同的参数,这大大减少了模型的参数数量。
平移不变性:由于池化层的存在,CNN对输入数据的平移变换具有一定的不变性。

简单代码实现

以下是一个使用PyTorch框架实现的简单CNN模型,用于手写数字识别(MNIST数据集):

import torch  
import torch.nn as nn  
import torch.nn.functional as F  
import torchvision  
import torchvision.transforms as transforms  # 数据预处理  
transform = transforms.Compose([  transforms.ToTensor(),  transforms.Normalize((0.5,), (0.5,))  
])  trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)  
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)  testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)  
testloader = torch.utils.data.DataLoader(testset, batch_size=64, shuffle=False)  # 定义CNN模型  
class ConvNet(nn.Module):  def __init__(self):  super(ConvNet, self).__init__()  self.conv1 = nn.Conv2d(1, 10, 5)  # 输入通道数为1,输出通道数为10,卷积核大小为5x5  self.pool = nn.MaxPool2d(2, 2)    # 池化窗口大小为2x2,步长为2  self.conv2 = nn.Conv2d(10, 20, 5) # 输入通道数为10,输出通道数为20,卷积核大小为5x5  self.fc = nn.Linear(320, 10)      # 全连接层,输入特征维度为320,输出类别数为10  def forward(self, x):  x = self.pool(F.relu(self.conv1(x)))  x = self.pool(F.relu(self.conv2(x)))  x = x.view(-1, 320)  # 展平操作  x = self.fc(x)  return x  # 初始化模型、损失函数和优化器  
model = ConvNet()  
criterion = nn.CrossEntropyLoss()  
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.5)  # 训练模型  
for epoch in range(10):  # 假设训练10个epoch  running_loss = 0.0  for i, data in enumerate(trainloader, 0):  inputs, labels = data  optimizer.zero_grad()  outputs = model(inputs)  loss = criterion(outputs, labels)  loss.backward()  optimizer.step()  running_loss += loss.item()  print(f'Epoch {epoch+1}, Loss: {running_loss/len(trainloader)}')  # 测试模型(代码略,通常包括关闭梯度计算、遍历测试集、计算准确率等步骤)

这段代码首先定义了数据预处理步骤,然后定义了一个简单的CNN模型,该模型包含两个卷积层、两个池化层和一个全连接层。接着,初始化了模型、损失函数和优化器,并展示了训练模型的基本流程。需要注意的是,测试模型的代码部分在这里被省略了,但通常包括关闭梯度计算、遍历测试集、计算模型输出与真实标签之间的损失或准确率等步骤。

在TensorFlow中实现一个简单的卷积神经网络(CNN)通常涉及以下几个步骤:定义模型结构、编译模型、训练模型以及评估模型。以下是一个使用TensorFlow 2(及其高级API Keras)实现的简单CNN示例,该示例用于手写数字识别(MNIST数据集)。

import tensorflow as tf  
from tensorflow.keras import datasets, layers, models  
import numpy as np  # 加载并预处理数据  
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()  # 将图像从整数转换为浮点数,并归一化到0到1的范围内  
train_images = train_images.reshape((60000, 28, 28, 1)).astype('float32') / 255  
test_images = test_images.reshape((10000, 28, 28, 1)).astype('float32') / 255  # 定义模型结构  
model = models.Sequential()  
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))  
model.add(layers.MaxPooling2D((2, 2)))  
model.add(layers.Conv2D(64, (3, 3), activation='relu'))  
model.add(layers.MaxPooling2D((2, 2)))  
model.add(layers.Conv2D(64, (3, 3), activation='relu'))  
model.add(layers.Flatten())  
model.add(layers.Dense(64, activation='relu'))  
model.add(layers.Dense(10))  # 编译模型  
model.compile(optimizer='adam',  loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),  metrics=['accuracy'])  # 训练模型  
history = model.fit(train_images, train_labels, epochs=10,   validation_data=(test_images, test_labels))  # 评估模型  
test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)  
print('\nTest accuracy:', test_acc)
http://www.tj-hxxt.cn/news/98190.html

相关文章:

  • 哪个网站做调查问卷赚钱国际新闻头条
  • 营销网站建设培训网站一键收录
  • 芜湖网站建设优化怎么从网上找客户
  • 专业外贸网站百度新闻官网首页
  • 手机单页网站通用模板店铺推广渠道有哪些
  • 网站设计报告播放量自助下单平台
  • 怎么做网站时时彩无限制搜索引擎排名
  • 网站木马诊断中国纪检监察报
  • 怎么做自己的发卡网站6百度数据指数
  • 基于ssm框架的购物网站开发产品怎么做推广和宣传
  • 国外购物网站哪个最好百度快照有什么用
  • 邢台物流网站建设抖音seo培训
  • 模板网站建设公司哪个好seo策略什么意思
  • 网站开发实践感想全国疫情最新公布
  • 做js题目的网站知乎新冠疫情最新消息今天
  • 给公司做网站要花多钱郑州seo代理外包公司
  • 国外网站做任务套利拼多多seo 优化软件
  • 自贡网站建设网站首页制作
  • 东莞专业做网站的公司有哪些有没有购买链接
  • 宜飞思工业设计网站营销软文模板
  • 网站建设专用图形库广州seo推广优化
  • 软装设计公司名字长沙网址seo
  • 重庆网站建设网领科技dz论坛seo
  • 网站建设增值税合肥seo整站优化网站
  • 怎么做微信网站产品故事软文案例
  • 龙岩天宫山谷歌seo推广招聘
  • 网站制作大概费用网络营销公司名称
  • 福州做网站的百度关键词优化排名
  • 云南网站定制文案代写
  • 网站地址怎么做超链接怎么注册自己的网站域名