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

【机器学习实战入门】基于深度学习的乳腺癌分类

在这里插入图片描述
什么是深度学习?
作为对机器学习的一种深入方法,深度学习受到了人类大脑和其生物神经网络的启发。它包括深层神经网络、递归神经网络、卷积神经网络和深度信念网络等架构,这些架构由多层组成,数据必须通过这些层才能最终产生输出。深度学习旨在改进人工智能并使许多应用成为可能;它被应用于计算机视觉、语音识别、自然语言处理、音频识别和药物设计等多个领域。

什么是 Keras?
Keras 是一个用 Python 编写的开源神经网络库。它是一个高级 API,并可以在 TensorFlow、CNTK 和 Theano 上运行。Keras 专注于支持快速实验和原型设计,同时在 CPU 和 GPU 上无缝运行。它用户友好、模块化且可扩展。

乳腺癌分类 – 目标
我们将在一个 IDC 数据集上构建一个乳腺癌分类器,可以准确地将组织学图像分类为良性或恶性。

关于 Python 项目 – 乳腺癌分类
在这个 Python 项目中,我们将构建一个分类器,以 80% 的乳腺癌组织学图像数据集进行训练。其中,我们将保留 10% 的数据用于验证。使用 Keras,我们将定义一个 CNN(卷积神经网络),并将其命名为 CancerNet,然后在我们的图像上进行训练。最后,我们将构建一个混淆矩阵来分析模型的性能。

IDC 是浸润性导管癌;这是一种在乳管中开始并在管外侵犯乳腺纤维或脂肪组织的癌症;它是最常见的乳腺癌形式,占所有乳腺癌诊断的 80%。而组织学是研究组织微观结构的学科。

数据集
我们将使用来自 Kaggle 的 IDC_regular 数据集(乳腺癌组织学图像数据集)。这个数据集包含从 162 份乳腺癌整体装片扫描图像中提取的 277524 个 50x50 尺寸的图像块。其中有 198738 个测试结果为 IDC 阴性,78786 个测试结果为 IDC 阳性。数据集公开发布,你可以在这里下载。为此,你需要至少 3.02GB 的磁盘空间。

此数据集中的文件名如下:

8863_idx5_x451_y1451_class0

这里,8863_idx5 是患者编号,451 和 1451 是裁剪图像的 x 和 y 坐标,0 是类别标签(0 表示 IDC 缺失)。

前提条件
你需要安装一些 Python 包才能运行这个高级 Python 项目。你可以使用 pip 安装:

pip install numpy opencv-python pillow tensorflow keras imutils scikit-learn matplotlib

高级 Python 项目 – 乳腺癌分类的步骤

  1. 下载压缩包。在你选择的位置解压缩它,并进入该位置。

乳腺癌检测 Python 项目

  1. 现在,在内部的 breast-cancer-classification 目录中,创建目录 datasets- 在此目录下,创建目录 original:
mkdir datasets
mkdir datasets\original
  1. 下载数据集。

  2. 在 original 目录中解压缩数据集。为了观察该目录的结构,我们将使用 tree 命令:

cd breast-cancer-classification\breast-cancer-classification\datasets\original
tree

项目中的原始结构

我们为每个患者编号有一个目录。在每个这样的目录中,我们有存放良性和恶性图像的 0 和 1 目录。

config.py:
这里包含了一些我们构建数据集和训练模型时所需的配置。你可以在 cancernet 目录中找到它。

import os
INPUT_DATASET = "datasets/original"
BASE_PATH = "datasets/idc"
TRAIN_PATH = os.path.sep.join([BASE_PATH, "training"])
VAL_PATH = os.path.sep.join([BASE_PATH, "validation"])
TEST_PATH = os.path.sep.join([BASE_PATH, "testing"])
TRAIN_SPLIT = 0.8
VAL_SPLIT = 0.1

在这里,我们声明了原始数据集的路径(datasets/original),新目录的路径(datasets/idc),以及使用基本路径声明的训练、验证和测试目录的路径。我们还声明 80% 的整个数据集将用于训练,而其中的 10% 将用于验证。

build_dataset.py:
此脚本将根据上述比例将数据集分割为训练集、验证集和测试集- 80% 用于训练(其中 10% 用于验证),20% 用于测试。使用 Keras 的 ImageDataGenerator,我们将提取图像批处理,以避免一次性将整个数据集加载到内存中。

from cancernet import config
from imutils import paths
import random, shutil, os
originalPaths=list(paths.list_images(config.INPUT_DATASET))
random.seed(7)
random.shuffle(originalPaths)
index=int(len(originalPaths)*config.TRAIN_SPLIT)
trainPaths=originalPaths[:index]
testPaths=originalPaths[index:]
index=int(len(trainPaths)*config.VAL_SPLIT)
valPaths=trainPaths[:index]
trainPaths=trainPaths[index:]
datasets=[("training", trainPaths, config.TRAIN_PATH),("validation", valPaths, config.VAL_PATH),("testing", testPaths, config.TEST_PATH)
]
for (setType, originalPaths, basePath) in datasets:print(f'Building {setType} set')if not os.path.exists(basePath):print(f'Building directory {basePath}')os.makedirs(basePath)for path in originalPaths:file=path.split(os.path.sep)[-1]label=file[-5:-4]labelPath=os.path.sep.join([basePath,label])if not os.path.exists(labelPath):print(f'Building directory {labelPath}')os.makedirs(labelPath)newPath=os.path.sep.join([labelPath, file])shutil.copy2(path, newPath)

机器学习 Python 项目

在此脚本中,我们将从 config、imutils、random、shutil 和 os 导入。我们构建一个原始图像路径的列表,然后将列表打乱。接着,我们通过将列表长度乘以 0.8 来计算索引,以便可以截取该列表以创建训练和测试数据集的子列表。然后,我们进一步计算索引,将训练数据集的 10% 用于验证,剩下的用于训练自己。

现在,datasets 是一个包含训练集、验证集和测试集信息的列表。这些信息包括路径和基本路径。对于此列表中的每个 set 类型、路径和基本路径,我们将打印如‘构建测试集’。如果基本路径不存在,我们将创建目录。对于 originalPaths 中的每个路径,我们将提取文件名和类别标签。然后,我们将构建标签目录(0 或 1)的路径-如果它还不存在,我们将明确创建该目录。现在,我们将构建目标图像的路径并将其复制到这里-它所属的位置。

  1. 运行脚本 build_dataset.py:
py build_dataset.py

构建数据集

cancernet.py:
我们将构建的网络是一个 CNN(卷积神经网络),并命名为 CancerNet。该网络执行以下操作:

  • 使用 3x3 CONV 滤波器
  • 将这些滤波器堆叠在一起
  • 执行最大池化
  • 使用深度分离卷积(更高效,占用较少内存)
from keras.models import Sequential
from keras.layers.normalization import BatchNormalization
from keras.layers.convolutional import SeparableConv2D
from keras.layers.convolutional import MaxPooling2D
from keras.layers.core import Activation
from keras.layers.core import Flatten
from keras.layers.core import Dropout
from keras.layers.core import Dense
from keras import backend as K
class CancerNet:@staticmethoddef build(width,height,depth,classes):model=Sequential()shape=(height,width,depth)channelDim=-1if K.image_data_format()=="channels_first":shape=(depth,height,width)channelDim=1model.add(SeparableConv2D(32, (3,3), padding="same",input_shape=shape))model.add(Activation("relu"))model.add(BatchNormalization(axis=channelDim))model.add(MaxPooling2D(pool_size=(2,2)))model.add(Dropout(0.25))model.add(SeparableConv2D(64, (3,3), padding="same"))model.add(Activation("relu"))model.add(BatchNormalization(axis=channelDim))model.add(SeparableConv2D(64, (3,3), padding="same"))model.add(Activation("relu"))model.add(BatchNormalization(axis=channelDim))model.add(MaxPooling2D(pool_size=(2,2)))model.add(Dropout(0.25))model.add(SeparableConv2D(128, (3,3), padding="same"))model.add(Activation("relu"))model.add(BatchNormalization(axis=channelDim))model.add(SeparableConv2D(128, (3,3), padding="same"))model.add(Activation("relu"))model.add(BatchNormalization(axis=channelDim))model.add(SeparableConv2D(128, (3,3), padding="same"))model.add(Activation("relu"))model.add(BatchNormalization(axis=channelDim))model.add(MaxPooling2D(pool_size=(2,2)))model.add(Dropout(0.25))model.add(Flatten())model.add(Dense(256))model.add(Activation("relu"))model.add(BatchNormalization())model.add(Dropout(0.5))model.add(Dense(classes))model.add(Activation("softmax"))return model

在本脚本中,我们使用 Sequential API 构建 CancerNet,并使用 SeparableConv2D 实现深度卷积。CancerNet 类有一个静态方法 build,它接受四个参数- 图像的宽度和高度、深度(每个图像的颜色通道数)以及网络将在其间预测的类别数,对于我们来说,这一数字为 2(0 和 1)。

在此方法中,我们初始化 model 和 shape。使用 channels_first 时,我们更新 shape 和通道维度。

现在,我们将定义三个 DEPTHWISE_CONV => RELU => POOL 层;每一层都有更高的堆叠和更多的滤波器。softmax 分类器输出每个类别的预测百分比。最后,我们返回模型。

train_model.py:
此脚本用于训练和评估我们的模型。在这里,我们将从 keras、sklearn、cancernet、config、imutils、matplotlib、numpy 和 os 导入。

import matplotlib
matplotlib.use("Agg")
from keras.preprocessing.image import ImageDataGenerator
from keras.callbacks import LearningRateScheduler
from keras.optimizers import Adagrad
from keras.utils import np_utils
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from cancernet.cancernet import CancerNet
from cancernet import config
from imutils import paths
import matplotlib.pyplot as plt
import numpy as np
import os
NUM_EPOCHS=40; INIT_LR=1e-2; BS=32
trainPaths=list(paths.list_images(config.TRAIN_PATH))
lenTrain=len(trainPaths)
lenVal=len(list(paths.list_images(config.VAL_PATH)))
lenTest=len(list(paths.list_images(config.TEST_PATH)))
trainLabels=[int(p.split(os.path.sep)[-2]) for p in trainPaths]
trainLabels=np_utils.to_categorical(trainLabels)
classTotals=trainLabels.sum(axis=0)
classWeight=classTotals.max()/classTotals
trainAug = ImageDataGenerator(rescale=1/255.0,rotation_range=20,zoom_range=0.05,width_shift_range=0.1,height_shift_range=0.1,shear_range=0.05,horizontal_flip=True,vertical_flip=True,fill_mode="nearest")
valAug=ImageDataGenerator(rescale=1 / 255.0)
trainGen = trainAug.flow_from_directory(config.TRAIN_PATH,class_mode="categorical",target_size=(48,48),color_mode="rgb",shuffle=True,batch_size=BS)
valGen = valAug.flow_from_directory(config.VAL_PATH,class_mode="categorical",target_size=(48,48),color_mode="rgb",shuffle=False,batch_size=BS)
testGen = valAug.flow_from_directory(config.TEST_PATH,class_mode="categorical",target_size=(48,48),color_mode="rgb",shuffle=False,batch_size=BS)
model=CancerNet.build(width=48,height=48,depth=3,classes=2)
opt=Adagrad(lr=INIT_LR,decay=INIT_LR/NUM_EPOCHS)
model.compile(loss="binary_crossentropy",optimizer=opt,metrics=["accuracy"])
M=model.fit_generator(trainGen,steps_per_epoch=lenTrain//BS,validation_data=valGen,validation_steps=lenVal//BS,class_weight=classWeight,epochs=NUM_EPOCHS)
print("Now evaluating the model")
testGen.reset()
pred_indices=model.predict_generator(testGen,steps=(lenTest//BS)+1)
pred_indices=np.argmax(pred_indices,axis=1)
print(classification_report(testGen.classes, pred_indices, target_names=testGen.class_indices.keys()))
cm=confusion_matrix(testGen.classes,pred_indices)
total=sum(sum(cm))
accuracy=(cm[0,0]+cm[1,1])/total
specificity=cm[1,1]/(cm[1,0]+cm[1,1])
sensitivity=cm[0,0]/(cm[0,0]+cm[0,1])
print(cm)
print(f'Accuracy: {accuracy}')
print(f'Specificity: {specificity}')
print(f'Sensitivity: {sensitivity}')
N = NUM_EPOCHS
plt.style.use("ggplot")
plt.figure()
plt.plot(np.arange(0,N), M.history["loss"], label="train_loss")
plt.plot(np.arange(0,N), M.history["val_loss"], label="val_loss")
plt.plot(np.arange(0,N), M.history["acc"], label="train_acc")
plt.plot(np.arange(0,N), M.history["val_acc"], label="val_acc")
plt.title("Training Loss and Accuracy on the IDC Dataset")
plt.xlabel("Epoch No.")
plt.ylabel("Loss/Accuracy")
plt.legend(loc="lower left")
plt.savefig('plot.png')

总结
在这个 Python 项目中,我们学习了如何使用 IDC 数据集(浸润性导管癌的组织学图像)构建一个乳腺癌分类器,并为此创建了 CancerNet 网络。我们使用 Keras 实现了这一点。希望你喜欢这个 Python 项目。

参考资料

资料名称链接
Kaggle IDC 数据集链接
Keras 文档链接
TensorFlow 官方文档链接
Python for Data Science Handbook链接
PyImageSearch 深度学习教程链接
《深度学习》 - Ian Goodfellow链接
Medium 深度学习文章链接
DataFlair Python 项目链接
《利用深度学习对抗癌症》 -.scalatest链接
维基百科 - 乳腺癌链接
中国深度学习社区链接
深度学习读书会链接
Deep Learning Book by Yoshua Bengio链接

参考资料:https://data-flair.training/blogs/project-in-python-breast-cancer-classification/

相关文章:

【机器学习实战入门】基于深度学习的乳腺癌分类

什么是深度学习? 作为对机器学习的一种深入方法,深度学习受到了人类大脑和其生物神经网络的启发。它包括深层神经网络、递归神经网络、卷积神经网络和深度信念网络等架构,这些架构由多层组成,数据必须通过这些层才能最终产生输出。…...

Golang Gin系列-1:Gin 框架总体概述

本文介绍了Gin框架,探索了它的关键特性,并建立了简单入门的应用程序。在这系列教程里,我们会探索Gin的主要特性,如路由、中间件、数据库集成等,最终能使用Gin框架构建健壮的web应用程序。 总体概述 Gin是Go编程语言的…...

【Python】第二弹---深入理解编程基础:从常量、变量到注释的全面解析

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】【Python】 目录 1、常量和表达式 2、变量和类型 2.1、变量是什么 2.2、变量的语法 2.3、变量的类型 2.4、动态类型特…...

RPA编程实践:Electron简介

文章目录 前言使用Electron构建桌面应用程序什么是Electron?为什么选择Electron?如何使用Electron实现上述想法?1. 创建基本的Electron应用2. 配置BrowserWindow3. 定制化你的应用4. 打包与分发 前言 Electron,用官网的话说&…...

svn tag

一般发布版本前,需要在svn上打个tag。步骤如下: 1、空白处右击,选择TortoiseSVN->Branch/tag; 2、填写To path,即tag的路基以及tag命名(一般用版本号来命名);填写tag信息;勾选cr…...

SpringBoot错误码国际化

先看测试效果: 1. 设置中文 2.设置英文 文件结构 1.中文和英文的错误消息配置 package com.ldj.mybatisflex.common;import lombok.Getter;/*** User: ldj* Date: 2025/1/12* Time: 17:50* Description: 异常消息枚举*/ Getter public enum ExceptionEnum {//…...

AAPM:基于大型语言模型代理的资产定价模型,夏普比率提高9.6%

“AAPM: Large Language Model Agent-based Asset Pricing Models” 论文地址:https://arxiv.org/pdf/2409.17266v1 Github地址:https://github.com/chengjunyan1/AAPM 摘要 这篇文章介绍了一种利用LLM代理的资产定价模型(AAPM)…...

LabVIEW桥接传感器配置与数据采集

该LabVIEW程序主要用于配置桥接传感器并进行数据采集,涉及电压激励、桥接电阻、采样设置及错误处理。第一个VI("Auto Cleanup")用于自动清理资源,建议保留以确保系统稳定运行。 以下是对图像中各个组件的详细解释&#…...

《汽车维修技师》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答: 问:《汽车维修技师》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《汽车维修技师》级别? 答:省级。主管单位:北方联合出版传媒(…...

python(25) : 含有大模型生成的公式的文本渲染成图片并生成word文档(支持flask接口调用)

公式样例 渲染前 \[ \sqrt{1904.615384} \approx 43.64 \] 渲染后 安装依赖 pip install matplotlib -i https://mirrors.aliyun.com/pypi/simple/ requestspip install sympy -i https://mirrors.aliyun.com/pypi/simple/ requestspip install python-docx -i https…...

深度学习项目--基于LSTM的火灾预测研究(pytorch实现)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 LSTM模型一直是一个很经典的模型,这个模型当然也很复杂,一般需要先学习RNN、GRU模型之后再学,GRU、LSTM的模型讲解将…...

云消息队列 Kafka 版 V3 系列荣获信通院“云原生技术创新标杆案例”

2024 年 12 月 24 日,由中国信息通信研究院(以下简称“中国信通院”)主办的“2025 中国信通院深度观察报告会:算力互联网分论坛”,在北京隆重召开。本次论坛以“算力互联网 新质生产力”为主题,全面展示中国…...

centos 安全配置基线

centos 安全配置基线 一、系统防火墙及SE系统1. 系统自带防火墙iptables(Centos6)基础命令查看防火墙设置使用命令查看防火墙设置使用命令清除防火墙设置防火墙策略开放指定的端口屏蔽IP 2. 系统自带防火墙firewalled(Centos7)基础…...

语音技术在播客领域的应用(2)

播客是以语音为主,各种基于AI 的语音技术在播客领域十分重要。 语音转文本 Whisper Whisper 是OpenAI 推出的开源语音辨识工具,可以把音档转成文字,支援超过50 种语言。这款工具是基于68 万小时的训练资料,其中包含11.7 万小时的…...

html的iframe页面给帆软BI发送消息

需求&#xff1a;帆软的网页组件嵌套一个HTML页面&#xff0c;HTML页面要给帆软发消息。 解决方法是&#xff1a;fineReportWindow.duchamp.getWidgetByName("txt1").setValue(666); <!DOCTYPE html> <html lang"en"> <head> <…...

Dart语言的字符串处理

Dart语言的字符串处理 目录 引言字符串的定义与基本特性字符串的创建字符串的操作字符串拼接字符串截取字符串替换字符串分割字符串查询字符串格式化正则表达式在字符串处理中的应用字符串编码与解码示例代码总结 1. 引言 在现代编程中&#xff0c;字符串处理是一个非常重要…...

迅为RK3576开发板Android 多屏显示

迅为iTOP-3576开发板采用瑞芯微RK3576高性能、低功耗的应用处理芯片&#xff0c;集成了4个Cortex-A72和4个Cortex-A53核心&#xff0c;以及独立的NEON协处理器。它适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品。 1.1 Android 多屏同显 iTOP-RK3576 开发板支持…...

基于SpringBoot+Vue旅游管理系统的设计和实现(源码+文档+部署讲解)

个人名片 &#x1f525; 源码获取 | 毕设定制| 商务合作&#xff1a;《个人名片》 ⛺️心若有所向往,何惧道阻且长 文章目录 个人名片环境需要技术栈功能介绍功能说明 环境需要 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&…...

Banana Pi BPI-RV2 RISC-V路由开发板采用矽昌通信SF2H8898芯片

Banana Pi BPI-RV2 开源网关是⼀款基于矽昌SF2H8898 SoC的设备&#xff0c;1 2.5 G WAN⽹络接⼝、5 个千兆LAN ⽹络接⼝、板载 512MB DDR3 内存 、128 MiB NAND、16 MiB NOR、M.2接⼝&#xff0c;MINI PCIE和USB 2.0接⼝等。 Banana Pi BPI-RV2 开源网关是矽昌和⾹蕉派开源社…...

【0x3D】HCI_Remote_Host_Supported_Features_Notification事件详解

目录 一、事件概述 二、事件格式及参数说明 2.1. HCI_Remote_Host_Supported_Features_Notification事件格式 2.2. BD_ADDR 2.3. Remote_Host_Supported_Features 三、事件作用 3.1. 设备特性沟通与理解 3.2. 功能协商与性能优化 3.3. 设备管理与配置更新 四、应用场…...

【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

欢迎来到《小5讲堂》 这是《腾讯云》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景效果图流程图创建数据库 基本信息数据库配置设置密码控制台开…...

Unity-Mirror网络框架-从入门到精通之RigidbodyBenchmark示例

文章目录 前言示例代码逻辑测试结论性能影响因素最后前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计,它…...

学习记录1

[SUCTF 2019]EasyWeb 直接给了源代码&#xff0c;分析一下 <?php function get_the_flag(){// webadmin will remove your upload file every 20 min!!!! $userdir "upload/tmp_".md5($_SERVER[REMOTE_ADDR]);if(!file_exists($userdir)){mkdir($userdir);}if…...

EWM 供应商退货

目录 1 简介 2 参考内向交货单退货场景 2.1 后台配置 ERP 配置 EWM 配置 2.2 主数据 2.3 业务操作 3 创建 return PO 退货场景 3.1 后台配置 ERP 配置 EWM 配置 3.2 主数据 3.3 业务操作 1 简介 EWM 供应商退货支持 2种方式退货: 1)参考内向交货单退货 2)创建…...

深度学习基础--GRU学习笔记(李沐《动手学习深度学习》)

前言 GRU是RNN模型的升级版&#xff0c;也是LSTM的弱化版&#xff0c;学习GRU也是为了学习LSTM做准备&#xff0c;这一篇文章是学习笔记&#xff1b;RNN&#xff1a;RNN讲解参考&#xff1a;李沐动手学习深度学习&#xff1b;欢迎收藏加关注&#xff0c;本人将会持续更新。 文…...

Linux-C/C++--初探linux应用编程概念

对于大多数首次接触 Linux 应用编程的读者来说&#xff0c;可能对应用编程&#xff08;也可称为系统编程&#xff09;这个概念并不 太了解&#xff0c;所以在正式学习 Linux 应用编程之前&#xff0c;笔者有必要向大家介绍这些简单基本的概念&#xff0c;从整体上认识 到应用编…...

计算机基础专业课

后面进一步完善内容&#xff01; 第一部分&#xff1a;计算机基础知识5% 第一章&#xff1a;计算机概述 第二章&#xff1a;信息表示与编码 第二部分&#xff1a;计算机软硬件基础25% 第三章&#xff1a;计算机系统组成&#xff08;计算机组成原理&#xff09; 第四章&am…...

6. 快速掌握抽象类及接口

目录 1. 抽象类1.1 抽象类语法1.2 抽象类特性1.3 抽象类的作用 2. 接口2.1 接口语法2.2 接口的特性 3. 接口案例4. 常用接口4.1 Comparable接口---compareTo()方法4.2 clonable接口---clone方法4.2 深拷贝和浅拷贝 5. Object类5.1 equals()方法5.2 toString()方法5.3 hashCode(…...

P6周:VGG-16算法-Pytorch实现人脸识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 我的环境 语言环境&#xff1a;Python 3.8.12 编译器&#xff1a;jupyter notebook 深度学习环境&#xff1a;torch 1.12.0cu113 一、前期准备 1.设置GPU im…...

GPT-5 传言:一场正在幕后发生的 AI 变革

新的一年&#xff0c;让我们从一个引人入胜的话题开始&#xff1a;如果我告诉你&#xff0c;GPT-5 并非虚构&#xff0c;而是真实存在呢&#xff1f;它不仅真实存在&#xff0c;而且正在你看不见的地方悄然塑造着世界。我的基本假设是&#xff1a;OpenAI 已经秘密开发出 GPT-5&…...

mac配置 iTerm2 使用lrzsz与服务器传输文件

mac配置 1. 安装支持rz和sz命令的lrzsz brew install lrzsz2. 下载iterm2-send-zmodem.sh和iterm2-recv-zmodem.sh两个脚本 # 克隆仓库 git clone https://github.com/aikuyun/iterm2-zmodem ~/iterm2-zmodem# 进入到仓库目录 cd ~/iterm2-zmodem# 设置脚本文件可执行权限 c…...

一、1-2 5G-A通感融合基站产品及开通

1、通感融合定义和场景&#xff08;阅读&#xff09; 1.1通感融合定义 1.2通感融合应用场景 2、通感融合架构和原理&#xff08;较难&#xff0c;理解即可&#xff09; 2.1 感知方式 2.2 通感融合架构 SF&#xff08;Sensing Function&#xff09;&#xff1a;核心网感知控制…...

深度学习加速性能分析与Roofline Model

深度学习加速性能分析 动因:由于深度学习加速器普遍采用时分复用(当然随着Graphcore等dataflow类型的芯片除外,他们是空间划分)。此时,硬件资源在不同时刻执行的计算发生变化,很难以单一时刻的计算类型进行硬件设计。所以寻找平均资源利用率就变得更重要方法:针对不同任…...

React 第三方状态管理库相关 -- Redux MobX 篇

一、redux 首先安装依赖&#xff1a; npm install redux react-redux reduxjs/toolkit 示例代码&#xff1a; // src/store/index.js import { configureStore } from reduxjs/toolkit import couterSlice from ./couterSliceconst store configureStore({reducer:{coute…...

“扣子”开发之四:与千帆AppBuilder比较

上一个专题——“扣子”开发——未能落地&#xff0c;开始抱着极大的热情进入&#xff0c;但迅速被稚嫩的架构模型折磨打击&#xff0c;硬着头皮坚持了两周&#xff0c;终究还是感觉不实用不趁手放弃了。今天询问了下豆包&#xff0c;看看还有哪些比较好的AI开发平台&#xff0…...

C++实现红黑树

红黑树 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出俩倍&…...

Vue3:当v-if和v-for同时使用时产生的问题和解决办法

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbci…...

python爬虫入门(理论)

python爬虫 学习网站 一、准备 环境搭建 requests beautifulsoup4 selenium 爬虫架构 URL管理器&#xff1a;管理URL&#xff0c;存储已爬取或待爬取的URL 网页下载器&#xff1a;破解网页&#xff0c;进行下载 网页解析器&#xff1a;对网页的HTML样式、连接的URL等进…...

有效提取激光雷达点云平面点

有效地面点云的提取和平面点的识别是通过一系列步骤实现的。以下是主要步骤&#xff1a; 高度过滤&#xff1a; 首先&#xff0c;根据激光雷达传感器的安装高度&#xff0c;对当前帧扫描得到的点云进行高度过滤&#xff0c;以初步分割出地面点云。假设第 k k k 帧的点云为 { …...

Vulnhub DC-8靶机攻击实战(一)

导语   Vulnhub DC-8靶机教程来了,好久没有更新打靶的教程了,这次我们在来更新一期关于Vulnhub DC-8的打靶训练,如下所示。 安装并且启动靶机 安装并且启动靶机,如下所示。 开始信息采集 进入到Kali中,通过如下的命令来查找到靶机的IP地址。 arp-scan -l根据上面的结…...

基于PHP的校园新闻发布管理

摘要 近年来&#xff0c;随着互联网技术的迅速发展&#xff0c;人们获取新闻的渠道也变得越来越多样化&#xff0c;已经不再拘束于传统的报纸、期刊、杂志等纸质化的方式&#xff0c;而是通过网络满足了人们获得第一手新闻的愿望&#xff0c;这样更加有助于实现新闻的规范化管…...

LabVIEW时域近场天线测试

随着通信技术的飞速发展&#xff0c;特别是在5G及未来通信技术中&#xff0c;天线性能的测试需求日益增加。对于短脉冲天线和宽带天线的时域特性测试&#xff0c;传统的频域测试方法已无法满足其需求。时域测试方法在这些应用中具有明显优势&#xff0c;可以提供更快速和精准的…...

组播PIM-原理介绍+报文分析+配置示例

个人认为&#xff0c;理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息&#xff0c;更加便于理解协议。 因此本文将在PIMv2协议报文的基础上进行介绍&#xff0c;以详细介绍组播协议PIM。 这里需要说明的是&#xff0c;以下内容都针对的是ASM&a…...

规避路由冲突

路由冲突是指在网络中存在两个或多个路由器在进行路由选择时出现矛盾&#xff0c;导致网络数据包无法正确传输&#xff0c;影响网络的正常运行。为了规避路由冲突&#xff0c;可以采取以下措施&#xff1a; 一、合理规划IP地址 分配唯一IP&#xff1a;确保每个设备在网络中都有…...

Asp .Net Core 实现微服务:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

什么是 Ocelot ? Ocelot是一个开源的ASP.NET Core微服务网关&#xff0c;它提供了API网关所需的所有功能&#xff0c;如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关&#xff0c;它可以与现有的服务集成&#xff0c;并帮助您保护、监控和扩展您的…...

【C++】非类型模板参数 || 类模板的特化

目录 1. 非类型模板参数 2. 模板特化 3. 类模板特化 3.1.全特化 3.2 部分特化 3.3 参数更进一步限制 3.4 类模板应用 1. 非类型模板参数 模板参数分类类型形参与非类型形参。类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型…...

Python基本概念与实践

Python语言&#xff0c;总给我一种“嗯&#xff1f;还能这么玩儿&#xff1f;”的感觉 Python像一个二三十岁的年轻人&#xff0c;自由、年轻、又灵活 欢迎一起进入Python的世界~ 本人工作中经常使用Python&#xff0c;针对一些常用的语法概念进行持续记录。 一、类与常见数据结…...

SQL Prompt 插件

SQL Prompt 插件 注&#xff1a;SQL Prompt插件提供智能代码补全、SQL格式化、代码自动提示和快捷输入等功能&#xff0c;非常方便&#xff0c;可以自行去尝试体会。 1、问题 SSMS&#xff08;SQL Server Management Studio&#xff09;是SQL Server自带的管理工具&#xff0c…...

1.6 从 GPT-1 到 GPT-3.5:一路的风云变幻

从 GPT-1 到 GPT-3.5:一路的风云变幻 人工智能的进步一直是科技领域的一个重要话题,而在自然语言处理(NLP)领域,GPT(Generative Pre-trained Transformer)系列模型的发布,标志着一个又一个技术突破。从2018年发布的 GPT-1 到2022年推出的 GPT-3.5,OpenAI 的每一次更新…...

centos 7 Mysql服务

将此服务器配置为 MySQL 服务器&#xff0c;创建数据库为 hubeidatabase&#xff0c;将登录的root密码设置为Qwer1234。在库中创建表为 mytable&#xff0c;在表中创建 2 个用户&#xff0c;分别为&#xff08;xiaoming&#xff0c;2010-4-1&#xff0c;女&#xff0c;male&…...