NCTF2022-复现

article/2025/9/16 8:38:34

文章目录

  • NCTF2022-复现
    • 比赛题目
    • 比赛总结
    • Misc
      • Signin
      • 只因因
      • 炉边聚会
      • zystego
      • qrssssssss
      • qrssssssss_revenge
    • 参考:

NCTF2022-复现

比赛题目

NCTF2022

比赛总结

本次比赛,web还是一无所获,自己还是差的很多。反观misc,这次比赛六道杂项题,做出来两道,然后在核对大佬们的wp后发现自己的思路完全正确,可惜的是自己不会写脚本。总的,本次比赛收获挺大的,做misc的思路更上了一步。个人感觉,这次misc是我做过最有意思的一次,非常好玩。

Misc

Signin

程序设计实验作业,但是签到题(听zys说建议把终端字体调小一点并且只需要输入一串来自35年前的神秘秘籍

神秘秘籍:上上下下左右左右ba,可以直接得到flag
在这里插入图片描述NCTF{VVe1c0m3_T0_NCTF_2022!!!}

另一种解法
在这里插入图片描述这道题,ida不太会用,先把参考的wp留着。

只因因

给了网站http://www.ncbi.nlm.nih.gov/BLAST/查询基因序列
在这里插入图片描述
在这里插入图片描述
简写 CFTR md5加密得到flag

NCTF{254e72a3768938792446548561412d43}

炉边聚会

听说炉石传说快关服了,zys很难过,决定在最后的时间里再组一套卡组玩玩,你能找到藏在里面的flag吗?

这题一开始做的时候不知道是什么东西,后来实在没思路就看着说明,搜了搜炉石传说,发现这段字符应该就是炉石的套牌代码,一下子就觉得只要找到卡组,flag肯定就没问题了。自己还装了一个炉石,结果代码复制进去完全没反应,然后搜的时候弹出了很多卡组代码的组成原理,于是就开始漫长的学习卡组代码的组成原理。

参考:炉石传说卡组代码是什么原理?代码是如何对应卡牌的?

<?php
function read_varint(&$data) {$shift = 0;$result = 0;do {$c = array_shift($data);$result |= ($c & 0x7f) << $shift;$shift += 7;}while ($c & 0x80);return $result;
}function parse_deck($data) {$reserve = read_varint($data);if ($reserve != 0) {printf("Invalid deckstring");die;}$version = read_varint($data);if ($version != 1) {printf("Unsupported deckstring version %s", $version);die;}$format = read_varint($data);$heroes = [];$num_heroes = read_varint($data);for ($i = 0; $i < $num_heroes; $i++) {$heroes[] = read_varint($data);}$cards = [];$num_cards_x1 = read_varint($data);for ($i = 0; $i < $num_cards_x1; $i++) {$card_id = read_varint($data);$cards[] = [$card_id, 1];}$num_cards_x2 = read_varint($data);for ($i = 0; $i < $num_cards_x2; $i++) {$card_id = read_varint($data);$cards[] = [$card_id, 2];}$num_cards_xn = read_varint($data);for ($i = 0; $i < $num_cards_xn; $i++) {$card_id = read_varint($data);$count = read_varint($data);$cards[] = [$card_id, $count];}return [$cards, $heroes, $format];
}$deckstring = "AAEDAZoFKIwGngXIBrwFzgnQBfIHygf0CIgJkAi+BogJ1gjMCPIHtgeeBeAD6AfyB7YHvgbgA+AD4AO2B7wFkgnMCMwI+ga2B/QImgi6BJAIiAn2BOIJAAA=";
#这是一个非常有趣的萨满卡组
$binary = base64_decode($deckstring);
$hex = bin2hex($binary);
$arr = str_split($hex, 2);
$arr = array_map("hexdec", $arr);
$arr = parse_deck($arr);
var_dump($arr);

执行结果

array(3) {[0] =>array(40) {[0] =>array(2) {[0] =>int(780)[1] =>int(1)}[1] =>array(2) {[0] =>int(670)[1] =>int(1)}[2] =>array(2) {[0] =>int(840)[1] =>int(1)}[3] =>array(2) {[0] =>int(700)[1] =>int(1)}[4] =>array(2) {[0] =>int(1230)[1] =>int(1)}[5] =>array(2) {[0] =>int(720)[1] =>int(1)}[6] =>array(2) {[0] =>int(1010)[1] =>int(1)}[7] =>array(2) {[0] =>int(970)[1] =>int(1)}[8] =>array(2) {[0] =>int(1140)[1] =>int(1)}[9] =>array(2) {[0] =>int(1160)[1] =>int(1)}[10] =>array(2) {[0] =>int(1040)[1] =>int(1)}[11] =>array(2) {[0] =>int(830)[1] =>int(1)}[12] =>array(2) {[0] =>int(1160)[1] =>int(1)}[13] =>array(2) {[0] =>int(1110)[1] =>int(1)}[14] =>array(2) {[0] =>int(1100)[1] =>int(1)}[15] =>array(2) {[0] =>int(1010)[1] =>int(1)}[16] =>array(2) {[0] =>int(950)[1] =>int(1)}[17] =>array(2) {[0] =>int(670)[1] =>int(1)}[18] =>array(2) {[0] =>int(480)[1] =>int(1)}[19] =>array(2) {[0] =>int(1000)[1] =>int(1)}[20] =>array(2) {[0] =>int(1010)[1] =>int(1)}[21] =>array(2) {[0] =>int(950)[1] =>int(1)}[22] =>array(2) {[0] =>int(830)[1] =>int(1)}[23] =>array(2) {[0] =>int(480)[1] =>int(1)}[24] =>array(2) {[0] =>int(480)[1] =>int(1)}[25] =>array(2) {[0] =>int(480)[1] =>int(1)}[26] =>array(2) {[0] =>int(950)[1] =>int(1)}[27] =>array(2) {[0] =>int(700)[1] =>int(1)}[28] =>array(2) {[0] =>int(1170)[1] =>int(1)}[29] =>array(2) {[0] =>int(1100)[1] =>int(1)}[30] =>array(2) {[0] =>int(1100)[1] =>int(1)}[31] =>array(2) {[0] =>int(890)[1] =>int(1)}[32] =>array(2) {[0] =>int(950)[1] =>int(1)}[33] =>array(2) {[0] =>int(1140)[1] =>int(1)}[34] =>array(2) {[0] =>int(1050)[1] =>int(1)}[35] =>array(2) {[0] =>int(570)[1] =>int(1)}[36] =>array(2) {[0] =>int(1040)[1] =>int(1)}[37] =>array(2) {[0] =>int(1160)[1] =>int(1)}[38] =>array(2) {[0] =>int(630)[1] =>int(1)}[39] =>array(2) {[0] =>int(1250)[1] =>int(1)}}[1] =>array(1) {[0] =>int(666)}[2] =>int(3)
}

其它wp脚本
这个要先转换为8位的二进制,根据卡组编码规则,把代码转为十六进制,再转二进制

fflag=['10001100','00000110','10011110','00000101','11001000','00000110','10111100','00000101','11001110','00001001','11010000','00000101','11110010','00000111','11001010','00000111','11110100','00001000','10001000','00001001','10010000','00001000','10111110','00000110','10001000','00001001','11010110','00001000','11001100','00001000','11110010','00000111','10110110','00000111','10011110','00000101','11100000','00000011','11101000','00000111','11110010','00000111','10110110','00000111','10111110','00000110','11100000','00000011','11100000','00000011','11100000','00000011','10110110','00000111','10111100','00000101','10010010','00001001','11001100','00001000','11001100','00001000','11111010','00000110','10110110','00000111','11110100','00001000','10011010','00001000','10111010','00000100','10010000','00001000','10001000','00001001','11110110','00000100','11100010','00001001','00000000','00000000']
for i in range(40):flag=fflag[2*i+1]+fflag[2*i][1:-1]+fflag[2*i][-1]fla=int(flag,2)fl=fla//10print(chr(fl),end='')

脚本三;可以直接出

from hearthstone.deckstrings import Deckdeck = Deck.from_deckstring('AAEDAZoFKIwGngXIBrwFzgnQBfIHygf0CIgJkAi+BogJ1gjMCPIHtgeeBeAD6AfyB7YHvgbgA+AD4AO2B7wFkgnMCMwI+ga2B/QImgi6BJAIiAn2BOIJAAA=')for card in deck.cards:flag_part = int(card[0] / 10)print(chr(flag_part), end='')
NCTF{HearthStone_C0de_S000_FunnY_ri9ht?}

zystego

可以分离出一个zip,爆破密码
在这里插入图片描述
flag.txt是假的
在这里插入图片描述somethin里有一堆不认识的东西,开头可以拿去搜一下,发现是PGP的私钥,然后这里就不会了,一直学PGP没搞懂,到底加密后的是什么,就给我个密钥怎么解。现在看了wp才发现,fd.png里还有东西。
fd.png右边一列奇怪的东西
请添加图片描述

提取RGB
看wp,可以用lsb找,但我一直找不出来,只能用脚本(但别说脚本真的香)

from PIL import Imageim = Image.open('fd.png')
pix = im.load()
width = im.size[0]
height = im.size[1]
for x in range(height):for y in range(width-3,width):r,g,b = pix[y,x]print(r,g,b)

在这里插入图片描述

from PIL import Imageim = Image.open('fd.png')
pix = im.load()
width = im.size[0]
height = im.size[1]
for x in range(height):for y in range(width-3,width):r, g, b = pix[y,x]#print(r,g,b)if r%10 == 0:print(0,end='')else:print(1,end='')if g%10 == 0:print(0,end='')else:print(1,end='')if b%10 == 0:print(0,end='')else:print(1,end='')

在这里插入图片描述到这里我也不认识了(要学的东西还多)
一个dct算法,末尾是key

import numpy as np
import cv2丁真 = np.float32(cv2.imread(r"fd.png",1))for i in range(64):for j in range(64):for 芝士 in range(3):小马珍珠 = 丁真[:, :, 芝士]雪豹 = cv2.dct(小马珍珠[8*i:8*i+8, 8*j:8*j+8])print(雪豹[7,7])
import numpy as np
import cv2丁真 = np.float32(cv2.imread(r"fd.png",1))for i in range(64):for j in range(64):for 芝士 in range(3):小马珍珠 = 丁真[:, :, 芝士]雪豹 = cv2.dct(小马珍珠[8*i:8*i+8, 8*j:8*j+8])# print(雪豹[7,7])if(雪豹[7,7] > 10):print(1,end='')elif(雪豹[7,7] < -10):print(0,end='')

得到一个zip,即为加密文件
在这里插入图片描述
在这里插入图片描述

key:%$#%$#jhgasdfg76342t

NCTF{zys_1s_s0_V3g3T@13lE_qwq}

qrssssssss

有什么东西掩盖住了zys的双眼,好像在给他指明方向!(flag括号内的内容只有26位

这题,512个二维码,一开始以为会组成什么东西,扫完发现NCTF{}有这东西,那一想,二维码按顺序扫描,flag不就出来了。然后发现每个二维码名字是时间,于是想到会不会按时间顺序就能扫出来了。

这个脚本才让我明白这题的原理,时间竟然是非预期

from PIL import Image
import pyzbar.pyzbar as pyzbar
import osdef qrcode_parse_content(img_path):'''单张图片的二维码解析'''img = Image.open(img_path)#使用pyzbar解析二维码图片内容barcodes = pyzbar.decode(img)#打印解析结果,从结果上可以看出,data是识别到的二维码内容,rect是二维码所在的位置# print(barcodes)# [Decoded(data=b'http://www.h3blog.com', type='QRCODE', rect=Rect(left=7, top=7, width=244, height=244), polygon=[Point(x=7, y=7), Point(x=7, y=251), Point(x=251, y=251), Point(x=251, y=7)])]result = []for barcode in barcodes:barcode_content = barcode.data.decode('utf-8')result.append(barcode_content)return resultdef load_imgs(folder):'''加载文件夹下的图片'''imgs = []for img_path in os.listdir(folder):ext = os.path.splitext(img_path)if len(ext) > 1 and is_img(ext[1]):imgs.append(img_path)return imgsdef is_img(ext):'''判断文件后缀是否是图片'''ext = ext.lower()if ext == '.jpg':return Trueelif ext == '.png':return Trueelif ext == '.jpeg':return Trueelif ext == '.bmp':return Trueelse:return Falseif __name__ == "__main__":imgs = load_imgs('./') # 打开图片文件夹,我这里是当前程序运行目录contents = []# for img in imgs:#     contents.extend(qrcode_parse_content(img))#     print( img)# file = './result.txt' # 写入文件路径,我这里程序当前运行目录下的result.txt# with open(file,'w',encoding='utf-8') as f:#     for c in contents:#         f.write(c + '\n')for img in imgs:print(qrcode_parse_content(img)[0],end='')
e1b19411bCT3ef91e-T6--5115-b-eNe5-01e-1-0}1a15-0e91e50N15-eTa3-0e}8bC16ee11feeeeb7{ae1eeNbC7Ta1T-5bFb--398a515-NbTfbb-8-7ef-}0C-Te4eF501f{6a51e4be--5-Fb0}Fb-5{b97ef8a-{fa11bC9fee-3-e9N{1-51T1NN01C41883{577-1e-T1603{C{-17-NNeC0f-0C39711514{9117F--6-F-e05a7517C3b4-F{F71f}-1fe70-34-{7805C}b{bCf1f-aT{e3aFe-f-0bT6C17000N78e-76}af7-}4N-907}03187b113T9eaeF--13ebeN71b-C9Te1eF-680-468675F17410674N910F51b1511--80FF565165-19}beT}N17N-1758e-}1a8-4C-0057e-5b7b0}5}{7eaN-{-b}36b}7eb0-606{15b4b01971T-59388-Te351eFC044417af

在这里插入图片描述二维码纠错级别LMQH
参考文章:如何一眼看出二维码的纠错等级
另一种方法

脚本输出二维码内容和修改时间

# coding: UTF-8
from PIL import Image
import pyzbar.pyzbar as pyzbar
import osdef qrcode_parse_content(img_path):'''单张图⽚的⼆维码解析'''img = Image.open(img_path)#使⽤pyzbar解析⼆维码图⽚内容barcodes = pyzbar.decode(img)#打印解析结果,从结果上可以看出,data是识别到的⼆维码内容,rect是⼆维码所在的位置# print(barcodes)# [Decoded(data=b'http://www.h3blog.com', type='QRCODE', rect=Rect(left=7, tresult = []for barcode in barcodes:barcode_content = barcode.data.decode('utf-8')result.append(barcode_content)return resultdef load_imgs(folder):'''加载⽂件夹下的图⽚'''imgs = []for img_path in os.listdir(folder):ext = os.path.splitext(img_path)if len(ext) > 1 and is_img(ext[1]):imgs.append(img_path)return imgsdef is_img(ext):'''判断⽂件后缀是否是图⽚'''ext = ext.lower()if ext == '.jpg':return Trueelif ext == '.png':return Trueelif ext == '.jpeg':return Trueelif ext == '.bmp':return Trueelse:return Falseif __name__ == "__main__":# path = "C:/Users/KG/Desktop/1/"path = 'C://Users/LENOVO/Desktop/NCTF2022/qrssssssss/qrssssssss/'imgs = load_imgs(path)  # 打开图⽚⽂件夹,我这⾥是当前程序运⾏⽬录contents = []for img in imgs:print(img, end='\t')old_name = img[:15]# print(old_name)print(qrcode_parse_content(path + img)[0], end='\t')print(os.path.getatime(path + img), end='\t')print(os.path.getctime(path + img), end='\t')print(os.path.getmtime(path + img))# new_name = old_name+'_'+qrcode_parse_content(path+img)[0]+'.png'# print(old_name+'_'+new_name+'.png')# print(qrcode_parse_content(path+img))# os.rename(path+img, path+new_name)# contents.extend(qrcode_parse_content(path+img))

脚本输出二维码的纠错级别

from PIL import Image
import pyzbar.pyzbar as pyzbar
import osdef qrcode_parse_content(img_path):'''单张图⽚的⼆维码解析'''img = Image.open(img_path)#使⽤pyzbar解析⼆维码图⽚内容barcodes = pyzbar.decode(img)#打印解析结果,从结果上可以看出,data是识别到的⼆维码内容,rect是⼆维码所在的位置# print(barcodes)# [Decoded(data=b'http://www.h3blog.com', type='QRCODE', rect=Rect(left=7, tresult = []for barcode in barcodes:barcode_content = barcode.data.decode('utf-8')result.append(barcode_content)return resultdef load_imgs(folder):'''加载⽂件夹下的图⽚'''imgs = []for img_path in os.listdir(folder):ext = os.path.splitext(img_path)if len(ext) > 1 and is_img(ext[1]):imgs.append(img_path)return imgsdef is_img(ext):'''判断文件后缀是否是图片'''ext = ext.lower()if ext == '.jpg':return Trueelif ext == '.png':return Trueelif ext == '.jpeg':return Trueelif ext == '.bmp':return Trueelse:return Falsedef get_level(i):img = Image.open(i)if img.load()[10, 170] == 0 and img.load()[30, 170] == 0:return(i, 'L')if img.load()[10, 170] == 0 and img.load()[30, 170] == 255:return(i, 'M')if img.load()[10, 170] == 255 and img.load()[30, 170] == 0:return(i, 'Q')if img.load()[10, 170] == 255 and img.load()[30, 170] == 255:return(i, 'H')if __name__ == "__main__":path = "C://Users/LENOVO/Desktop/NCTF2022/qrssssssss/qrssssssss/"# path = 'C://Users/KG/Downloads/qrssssssss/'imgs = load_imgs(path) # 打开图⽚⽂件夹,我这⾥是当前程序运⾏⽬录contents = []for img in imgs:old_name = img[:15]print(old_name,end='\t')print(qrcode_parse_content(path+img)[0],end='\t')print(get_level(path+img)[1],end='\t')print(os.path.getatime(path+img),end='\t')print(os.path.getctime(path+img),end='\t')print(os.path.getmtime(path+img))# new_name = old_name+'_'+qrcode_parse_content(path+img)[0]+'.png'# print(old_name+'_'+new_name+'.png')# print(qrcode_parse_content(path+img))# os.rename(path+img, path+new_name)

按纠错顺序排序即可得到flag

NCTF{737150-eeb-465-e91-110a8fb}

qrssssssss_revenge

LMQH

这道就是纯LMQH来排序了,没有非预期

NCTF{62130783efd44b3692b4ddbecf}

参考:

南邮-NCTF2022 WRITE UP

Scr1w战队wp(比赛群里师傅发的)

如何一眼看出二维码的纠错等级


http://chatgpt.dhexx.cn/article/Qcg1LltJ.shtml

相关文章

NCTF2022 Web Writeup

1.calc 题目地址&#xff1a;http://116.205.139.166:8001/ 右键 /source 源码 app.route("/calc",methods[GET]) def calc():ip request.remote_addrnum request.values.get("num")log "echo {0}{1}{2}> ./tmp/log.txt".format(time.strf…

NCTF web总结与复现

前言 打完NCTF休息了一下&#xff0c;总体感觉还行&#xff0c;学到了很多。 calc 这一题也卡了我很久&#xff0c;因为复现过DASCTF三月赛&#xff0c;一直在想着有没有可以替代反引号或绕过的方法&#xff0c;搞了好久都没出&#xff0c;在学长的提示下学到了一个方法&…

CNN网络设计

系列文章目录 文章目录 系列文章目录前言一、CNN基本概念二、卷积计算类型其他算子常用激活函数经典轻量化模型 前言 一图胜千言 一、CNN基本概念 感受野指的是卷积神经网络每一层输出的特征图(feature map)上每个像素点映射回输入图像上的区域大小&#xff0c;神经元感受野…

CNN基本结构和经典网络

卷积网络的基本结构 数据输入层/ Input layer 3种常见的图像数据处理方式&#xff1a;一般CNN只用去均值 卷积计算层/ CONV layer 基本概念&#xff1a; depth:与神经元&#xff08;filter&#xff09;个数相等stribezero-padding 卷积宽长深度计算&#xff1a; 激励层(R…

CNN概述

CNN 卷积神经网络简介 特点 将大数据量的图片降维成小数据量有效保留图片特征 应用领域 人脸识别、自动驾驶、无人安防 CNN解决的问题 图像的数据量太大&#xff0c;导致成本很高&#xff0c;效率很低图像在数字化的过程中容易丢失特征&#xff08;其实就对应了两个特点&…

常见CNN网络结构的详解和代码实现

1. AlexNet 论文地址:ImageNet Classification with Deep Convolutional Neural Networks 2012年提出的AlexNet的网络结构为&#xff1a; 结构说明如下&#xff1a; 1.1 ReLu(Rectified Linear Units)激活函数&#xff1a; Relu函数为 r e l u ( x ) m a x { 0 , x } { …

图像分类网络-经典CNN网络简介

在CNN网络结构的演化上&#xff0c;出现过许多优秀的CNN网络&#xff0c;CNN的经典结构始于1998年的LeNet&#xff0c;成于2012年历史性的AlexNet&#xff0c;从此大盛于图像相关领域&#xff0c;主要包括&#xff1a; 发展历史&#xff1a;Lenet --> Alexnet --> ZFnet …

使用PyTorch搭建CNN神经网络

使用pytorch搭建CNN神经网络 卷积运算的基本原理单层卷积运算valid convolutionsame convolution CNN的基本结构数据输入层卷积层池化层全连接层 数据导入的实现构建基础的CNN网络网络的设计损失函数和优化器训练函数和测试函数实现CNN网络的训练和测试 Googlenet的实现网络框架…

CNN(卷积神经网络)概述

过去几年&#xff0c;深度学习&#xff08;Deep learning&#xff09;在解决诸如视觉识别(visual recognition)、语音识别(speech recognition)和自然语言处理(natural language processing)等很多问题方面都表现出非常好的性能。在不同类型的深度神经网络当中&#xff0c;卷积…

CNN卷积网络

CNN卷积神经网络 1.与全连接神经网络的区别 1).总有至少一个卷积层 2).卷积层级之间的神经元是局部连接和权值共享(整张图片在使用同一个卷积核内的参数&#xff0c;卷积核里的值叫做权重&#xff0c;不会因为图像内位置的不同而改变卷积核内的权系数&#xff09;&#xff0…

CNN(卷积神经网络)

一、卷积神经网络 1、CNN的基本知识 1、卷积神经网络(Convolutional Neural Networks&#xff0c;CNN)的作用&#xff1a;1.cnn跟全连接的区别&#xff1a;原来一个输出神经元的计算是跟所有输入层的神经元相连&#xff0c;现在只是局部输入层的神经元相连&#xff1b;同一所…

CNN卷积神经网络

目录 一、BP神经网络回顾 二、CNN卷积神经网络 1、CNN的主要概述 2、CNN的一般结构 三、CNN卷积神经网络的应用 四、常见的CNN卷积神经网络 一、BP神经网络回顾 人工全连接神经网络 &#xff08;1&#xff09;每相邻两层之间的每个神经元之间都是有边相连的 &#xff0…

深度学习----CNN几种常见网络结构及区别

一、 CNN结构演化历史的图二、 AlexNet网络 2.1 ReLU 非线性激活函数 多GPU训练(Training on Multiple GPUs)局部响应归一化(Local Response Normalization)重叠池化(Overlapping Pooling) 2.2 降低过拟合( Reducing Overfitting) 数据增强(Data Augmentation)Dropout 三、VG…

神经网络--从0开始搭建全连接网络和CNN网络

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天来学习一下如何从0开始搭建全连接网络和CNN网络&#xff0c;并通过实验简单对比一下两种神经网络的不同之处&#xff0c;本文目录较长&#xff0c;可以根据需要自动选取要看的内容~ 本文目录&#xff1a; 一、搭建4层…

经典CNN网络:Resnet18网络结构输入和输出

前言 Q1:每当看到一个新的网络&#xff0c;总会思考&#xff0c;这个网络提出来有什么意义&#xff0c;解决了什么问题&#xff1f; Resnet18中的resnet就时网络结构呗&#xff0c;18应该是权重层的数量(参照VGG16的命名方法&#xff0c;应该时这样理解)。 Q2:为什么会出现Resn…

深度学习——CNN卷积神经网络

基本概念 概述 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;是一种深度学习中常用于处理具有网格结构数据的神经网络模型。它在计算机视觉领域广泛应用于图像分类、目标检测、图像生成等任务。 核心思想 CNN 的核心思想是通过利用局部…

通俗易懂:图解10大CNN网络架构

作者 | Raimi Karim 译者 | Major 编辑 | 赵雪 出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09; 导语&#xff1a;近年来&#xff0c;许多卷积神经网络&#xff08; CNN &#xff09;跃入眼帘&#xff0c;而随着其越来越深的深度&#xff0c;我们难以对某个 CNN 的结…

详解CNN卷积神经网络

详解卷积神经网络(CNN) 详解卷积神经网络CNN概揽Layers used to build ConvNets 卷积层Convolutional layer池化层Pooling Layer全连接层Fully-connected layer 卷积神经网络架构 Layer PatternsLayer Sizing PatternsCase Studies 参考 卷积神经网络&#xff08;Convolutional…

CNN 卷积神经网络

文章目录 9、CNN 卷积神经网络9.1 Revision9.2 Introduction9.3 Convolution9.3.1 Channel9.3.2 Layer9.3.3 Padding9.3.4 Stride 9.4 Max Pooling9.5 A Simple CNN9.5.1 GPU9.5.2 Code 19.5.3 Exercise9.5.4 Code 2 9.6 GoogLeNet9.6.1 Inception Module9.6.2 1 x 1 convoluti…

简要笔记-CNN网络

以下是CNN网络的简要介绍。 1 CNN的发展简述 CNN可以有效降低传统神经网络(全连接)的复杂性&#xff0c;常见的网络结构有LeNet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等。 1.1 CNN常见的网络结构 &#xff08;1&#xff09;LeNet&#xff08;1998年 &#xff09;: 首个…