自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

政安晨——致力于AI人工智能数字互动领域

分享人工智能感知交互技术的研究成果与产品经验,助力人工智能数字产业生态。

  • 博客(150)
  • 资源 (1)
  • 收藏
  • 关注

原创 政安晨:【Keras机器学习实践要点】(二十九)—— 半监督图像分类使用具有SimCLR对比性预训练的方法

本文目标:使用SimCLR的对比预训练方法进行STL-10数据集的半监督图像分类。半监督学习是一种处理部分标记数据集的机器学习范式。在实际应用深度学习时,通常需要收集大量数据集以使其良好运行。然而,标记成本与数据集大小成线性关系(标记每个示例的时间是恒定的),而模型性能只与数据集大小成亚线性关系。这意味着标记越来越多的样本成本效益越来越低,而收集未标记的数据通常便宜,因为通常有大量可获得的未标记数据。

2024-04-14 06:00:00 459

原创 政安晨:【Keras机器学习实践要点】(三十)—— 使用斯温变换器进行图像分类

本文目标:使用 Swin Transformers(计算机视觉的通用骨干)进行图像分类。本示例实现了用于图像分类的 Swin 变换器:使用移位窗口的分层视觉变换器,并在 CIFAR-100 数据集上进行了演示。Swin Transformer(移位窗口变换器)可作为计算机视觉的通用骨干。Swin 变换器是一种分层变换器,其表示是通过移位窗口计算的。移位窗口方案将自我关注计算限制在非重叠局部窗口,同时允许跨窗口连接,从而提高了效率。

2024-04-14 05:45:00 672

原创 政安晨:【Keras机器学习实践要点】(二十八)—— 使用Reptile进行小样本学习

本文目标:使用 Reptile 对 Omniglot 数据集进行少量分类。Reptile算法是由OpenAI开发的,用于执行与模型无关的元学习。具体而言,该算法旨在通过最小的训练量(少样本学习)迅速学习执行新任务。该算法通过使用在一个小批量的从未见过的数据上训练得到的权重与训练前的模型权重之间的差别进行随机梯度下降,经过一定数量的元迭代来工作。

2024-04-13 06:15:00 586

原创 政安晨:【Keras机器学习实践要点】(二十七)—— 使用感知器进行图像分类

本文目标:实施用于图像分类的感知器模型。Perceiver 模型利用非对称注意力机制,将输入信息迭代提炼成一个紧密的潜在瓶颈,使其能够扩展以处理非常大的输入信息。换句话说:假设你的输入数据数组(如图像)有 M 个元素(即补丁),其中 M 很庞大。在标准变换器模型中,会对 M 个元素执行自注意操作。

2024-04-13 05:45:00 799

原创 政安晨:【Keras机器学习实践要点】(二十六)—— 内卷神经网络

本文目标:深入研究特定位置和渠道无关的“内卷”核函数。卷积是大多数现代计算机视觉神经网络的基础。卷积核具有空间无关性和通道特定性。因此,它无法适应不同空间位置的不同视觉模式。除了与位置相关的问题,卷积的作用范围也给捕捉远距离空间相互作用带来了挑战。

2024-04-12 06:15:00 1091

原创 政安晨:【Keras机器学习实践要点】(二十五)—— 使用 EANet(外部注意力转换器)进行图像分类

本文目标:利用外部注意力的变形器进行图像分类。本例实现了用于图像分类的 EANet 模型,并在 CIFAR-100 数据集上进行了演示。EANet 引入了一种名为 "外部注意 "的新型注意机制,它基于两个外部、小型、可学习和共享的记忆,只需使用两个级联线性层和两个归一化层即可轻松实现。它可以方便地取代现有架构中使用的自我注意。外部注意力具有线性复杂性,因为它只隐含地考虑了所有样本之间的相关性。

2024-04-12 05:45:00 1513

原创 政安晨:【深度学习神经网络基础】(六)—— 前馈神经网络

由于其用途广泛,前馈神经网络架构非常受欢迎。因此,我们将探索如何训练它,以及它如何处理模式。“前馈”一词描述了该神经网络如何处理和记忆模式。在前馈神经网络中,神经网络的每一层都包含到下一层的连接。如这些连接从输入向前延伸到隐藏层,但是没有向后的连接。后面,我们也将分析前馈神经网络的结构及其记忆模式的方式。我们可以使用多种反向传播算法中的各种技术来训练前馈神经网络,这是一种有监督的训练形式。本文重点介绍应用优化算法来训练神经网络的权重。

2024-04-11 06:15:00 671

原创 政安晨:【Keras机器学习实践要点】(二十四)—— 使用 ConvMixer 进行图像分类

视觉变换器(ViT;Dosovitskiy 等人)从输入图像中提取小块图像,对其进行线性投影,然后应用变换器(Vaswani 等人)块。将 ViTs 应用于图像识别任务正迅速成为一个前景广阔的研究领域,因为 ViTs 无需使用强大的归纳偏差(如卷积)来模拟局部性。因此,ViTs 是一种通用的计算基元,能够仅从训练数据中学习,并尽可能减少归纳先验。当使用适当的正则化、数据增强和相对较大的数据集进行训练时,ViTs 会产生很好的下游性能。

2024-04-11 05:45:00 1624

原创 政安晨:【深度学习神经网络基础】(五)—— 霍普菲尔德神经网络和玻尔兹曼机

这两种经典神经网络虽然都没有在现代AI应用程序中广泛使用,但两者都是现代算法的基础。玻尔兹曼机构成了深度信念神经网络(Deep Belief Neural Network,DBNN)的基础,它是深度学习的基本算法之一。霍普菲尔德神经网络是一种非常简单的神经网络,它具备许多特性,这些特性也是更复杂的前馈神经网络所具有的。玻尔兹曼机是一种神经网络架构,它与霍普菲尔德神经网络有许多共同的特征。但是,与霍普菲尔德神经网络不同,你可以利用玻尔兹曼机堆叠深度信念神经网络。

2024-04-10 06:15:00 1536

原创 政安晨:【Keras机器学习实践要点】(二十三)—— 紧凑型卷积变换器

本文目标:用于高效图像分类的紧凑型卷积变换器正如视觉变换器(ViT)论文中所讨论的,基于变换器的视觉架构通常需要比通常更大的数据集,以及更长的预训练时间。对于 ViT 而言,ImageNet-1k(拥有约一百万张图像)被认为属于中等数据规模。这主要是因为,与 CNN 不同,ViT(或典型的基于 Transformer 的架构)不具备信息充分的归纳偏差(如处理图像的卷积)。这就引出了一个问题:难道我们不能在单一网络架构中结合卷积的优势和变形器的优势吗?

2024-04-10 06:00:00 1062

原创 政安晨:【Keras机器学习实践要点】(二十二)—— 基于 TPU 的肺炎分类

本文目标:基于 TPU 的医学图像分类。Keras是一个高级神经网络库,可以用于实现医学图像分类任务。医学图像分类是指将医学图像分为不同的类别,例如正常和异常,不同病种等。在Keras中,可以使用卷积神经网络(CNN)来进行医学图像分类。CNN是一种特别适用于图像分类任务的神经网络架构,它能够有效地提取图像中的特征。

2024-04-09 06:00:00 1024

原创 政安晨:【深度学习神经网络基础】(四)—— 自组织映射

本文介绍当今仍然有用的、最早的一种神经网络。由于神经元可以通过各种方式连接,因此存在许多不同的神经网络架构。我们从自组织映射(Self-Organizing Map,SOM)开始研究经典神经网络。人们利用SOM,将神经网络的输入数据分类。将训练数据和希望将这些数据分类的组数一同提供给SOM。在训练期间,SOM会将这些数据分组。特征最相似的数据将被分在一起。这个过程与聚类算法(如K均值)非常相似。但是,与仅对一组初始数据进行分组的K均值不同,SOM可以继续对除用于训练的初始数据集之外的新数据进行分类。

2024-04-09 05:45:00 677

原创 政安晨:【Keras机器学习实践要点】(二十一)—— MobileViT:基于变换器的移动友好图像分类模型

在本示例中,我们实现了 MobileViT 架构(Mehta 等人),该架构结合了 Transformers(Vaswani 等人)和卷积的优点。通过变换器,我们可以捕捉长距离依赖关系,从而实现全局表示。通过卷积,我们可以捕捉空间关系,从而建立局部模型。除了结合变换器和卷积的特性,作者还介绍了 MobileViT,将其作为通用的移动友好骨干,用于不同的图像识别任务。

2024-04-09 05:45:00 1110

原创 政安晨:【Keras机器学习实践要点】(十九)—— 使用基于注意力的深度多实例学习 (MIL) 进行分类

用 MIL 方法对实例包进行分类,并得出每个实例的得分。什么是多重实例学习(MIL)?通常,在监督学习算法中,学习者会收到一组实例的标签。在 MIL 中,学习者会收到一组袋的标签,每个袋都包含一组实例。如果包中至少包含一个正向实例,则标记为 "正";如果包中不包含任何实例,则标记为 "负"。

2024-04-08 05:45:00 702 2

原创 政安晨:【Keras机器学习实践要点】(二十)—— 使用现代 MLP 模型进行图像分类

本文目标:为 CIFAR-100 图像分类实施 MLP-Mixer、FNet 和 gMLP 模型。本示例实现了三种基于多层感知器(MLP)的现代无注意力图像分类模型,并在 CIFAR-100 数据集上进行了演示:1. Ilya Tolstikhin 等人基于两种类型 MLP 的 MLP-Mixer 模型。2. James Lee-Thorp 等人基于非参数化傅立叶变换的 FNet 模型。3. gMLP 模型,由 Hanxiao Liu 等人提出,基于带门控的 MLP。

2024-04-08 05:45:00 644

原创 政安晨:【深度学习神经网络基础】(三)—— 激活函数

本文目标:介绍激活函数。在神经网络编程中,激活函数或传递函数为神经元的输出建立界限。神经网络可以使用许多不同的激活函数。我们将在本文中讨论最常见的激活函数。为神经网络选择激活函数是一个重要的考虑,因为它会影响输入数据格式化的方式。在本文中,我们将指导你选择激活函数。

2024-04-07 09:07:54 1684

原创 政安晨:【Keras机器学习实践要点】(十八)—— 利用视觉转换器进行图像分类

本示例实现了 Alexey Dosovitskiy 等人提出的用于图像分类的视觉变换器(ViT)模型,并在 CIFAR-100 数据集上进行了演示。ViT 模型不使用卷积层,而是对图像片段序列应用了具有自我关注功能的 Transformer 架构。

2024-04-07 05:45:00 767

原创 政安晨:【Keras机器学习实践要点】(十七)—— 利用 EfficientNet 通过微调进行图像分类

EfficientNet 由 Tan 和 Le 于 2019 年首次提出,是效率最高的模型之一(即推理所需的 FLOPS 最低),在图像网和普通图像分类迁移学习任务中都达到了最先进的精度。最小的基础模型与 MnasNet 相似,后者用更小的模型达到了接近一流水平。

2024-04-06 05:45:00 727

原创 政安晨:【Keras机器学习实践要点】(十六)—— 图像分类从零开始

本示例展示了如何从零开始进行图像分类,从磁盘上的 JPEG 图像文件开始,而无需利用预训练的权重或预制的 Keras 应用程序模型。我们在 Kaggle Cats vs Dogs 二进制分类数据集上演示了该工作流程。我们使用 image_dataset_from_directory 实用程序生成数据集,并使用 Keras 图像预处理层进行图像标准化和数据扩增。

2024-04-05 06:00:00 754 2

原创 【嵌入式智能产品开发实战】(十六)—— 政安晨:通过ARM-Linux掌握基本技能【Linux shell揭秘】

Linux的shell有多种,其中最常用的是Bash(Bourne Again SHell),也有其他一些比如Csh、Ksh等。Bash兼容Bourne shell,并且在功能上更加强大和灵活。Linux的shell可以执行各种命令和程序,比如文件操作、进程管理、网络操作等。它还支持通配符和正则表达式,可以方便地进行文件搜索和批量操作。除了执行单个命令外,shell还支持命令的组合和管道。通过使用逻辑运算符(如&&和||)和管道符(|),可以将多个命令连接起来,实现复杂的操作。

2024-04-05 05:45:00 1087

原创 政安晨:【Keras机器学习实践要点】(十五)—— KerasTuner 简述

KerasTuner 是一个通用超参数调整库。它与 Keras 工作流集成度很高,但并不局限于 Keras 工作流:你可以用它来调整 scikit-learn 模型或其他任何东西。在本文中,您将看到如何使用 KerasTuner 调整模型架构、训练过程和数据预处理步骤。让我们从一个简单的例子开始。

2024-04-04 08:04:26 1063

原创 政安晨【AIGC实践】(一):在Kaggle上部署使用Stable Diffusion

Stable Diffusion 3 是Stability AI最新的文本到图像模型,在处理多主题提示、卓越的图像质量和拼写准确性方面实现了重大飞跃。目前,该模型正处于早期预览阶段,提供从 800M 到 8B 参数的各种配置,使各种硬件配置的使用更加平民化。

2024-04-03 09:46:06 1283 1

原创 【嵌入式智能产品开发实战】(十五)—— 政安晨:通过ARM-Linux掌握基本技能【GNU C标准与编译器】

大家在看一些GNU开源软件,或者阅读Linux内核、驱动源码时会发现,在Linux内核源码中,有大量的C程序看起来“怪怪的”。说它是C语言吧,貌似又和教材中的写法不太一样;说它不是C语言吧,但是这些程序确确实实保存在一个C源文件中。此时,你肯定怀疑你看到的是一个“假的”C语言!我们在Linux驱动开发,或者阅读Linux内核源码过程中,会经常遇到这些“稀奇古怪”的用法,如果不去了解这些特殊语法的具体含义,可能就会对我们理解代码造成一定障碍。

2024-04-03 05:45:00 1066 1

原创 【嵌入式智能产品开发实战】(十四)—— 政安晨:通过ARM-Linux掌握基本技能【链接静态库与动态库】

在一个软件项目中,为了完成特定功能,除了自定义函数,我们还可以使用别人已经封装好的函数库,如C标准库、音视频编解码库等。库函数的使用避免了“造轮子”的重复工作,提高了代码复用率,大大减轻了软件开发的工作量。库分为静态库和动态库两种。如果我们在项目中引用了库函数,则在编译时,链接器会将我们引用的函数代码或变量,链接到可执行文件里,和可执行程序组装在一起,这种库被称为静态库,即在编译阶段链接的库。动态库在编译阶段不参与链接,不和可执行文件组装在一起,而是在程序运行时才被加载到内存参与链接,因此又叫作动态链接。

2024-04-02 21:01:03 1281 1

原创 政安晨:【Keras机器学习实践要点】(十四)—— 使用 Keras3 进行分布式训练

Keras 分布 API 是一个新接口,旨在促进 JAX、TensorFlow 和 PyTorch 等各种后端之间的分布式深度学习。这个功能强大的 API 引入了一套支持数据和模型并行的工具,可在多个加速器和主机上高效扩展深度学习模型。无论是利用 GPU 还是 TPU 的强大功能,API 都提供了一种简化的方法来初始化分布式环境、定义设备网格,以及协调跨计算资源的张量布局。

2024-04-02 08:18:00 865 1

原创 政安晨:【Keras机器学习实践要点】(十三)—— 利用 TensorFlow 进行多 GPU 分布式训练

本文是使用 TensorFlow 对 Keras 模型进行多 GPU 训练的指南。在多台设备之间分配计算通常有两种方法:数据并行,即在多个设备或多台机器上复制单个模型。它们各自处理不同批次的数据,然后合并结果。这种设置有很多变体,不同的模型副本合并结果的方式不同,它们是在每个批次保持同步,还是更松散地耦合等。模型并行,即一个模型的不同部分在不同设备上运行,同时处理一批数据。这种方法最适用于具有天然并行架构的模型,例如具有多个分支的模型。

2024-04-02 05:45:00 662

原创 【嵌入式智能产品开发实战】(十三)—— 政安晨:通过ARM-Linux掌握基本技能【运行环境】

ARM-Linux中的C语言程序在ARM架构、Linux操作系统、C语言编译器、C运行时库和虚拟内存管理的支持下,可以在ARM-Linux系统上编译和运行。这些组成部分提供了丰富的功能和接口,使得开发者可以方便地编写、编译和运行C语言程序。在不同的环境下执行程序,文件的格式一般也会不一样,如在Linux环境下,可执行文件是ELF格式,而在裸机环境下执行的程序一般是BIN/HEX格式。两种程序虽然运行环境不同,文件格式也有所差异,但原理是相通的:都要将指令加载到内存中的指定位置。

2024-04-01 06:00:00 1200 1

原创 政安晨:【Keras机器学习实践要点】(十二)—— 迁移学习和微调

Keras是一种用于构建深度学习模型的高级神经网络API。迁移学习是指在一个任务上训练好的模型或特征提取器用于另一个相关任务上。Keras迁移学习是利用预训练模型的特征提取能力来加速模型训练。预训练模型通常是在大规模数据集上训练的,并且已经提取出了一些有用的特征。迁移学习可以通过利用这些特征来降低新任务的数据需求和训练时间。Keras提供了一些流行的预训练模型,如VGG16、ResNet50和InceptionV3等。

2024-04-01 05:45:00 969

原创 政安晨:【Keras机器学习实践要点】(十一)—— 编写自己的回调

本文是编写新 Keras 回调的完整指南。回调是在训练、评估或推理过程中自定义 Keras 模型行为的强大工具。在本文中,您将了解什么是 Keras 回调、它能做什么以及如何构建自己的回调。我们将提供一些简单的回调应用演示,帮助您快速入门。

2024-03-31 06:00:00 1239 2

原创 政安晨:【Keras机器学习实践要点】(十)—— 自定义保存和序列化

这是一篇更高级的图层和模型自定义保存指南。本文涵盖可在 Keras 保存中自定义的高级方法。对于大多数用户来说,上文的初级序列化、保存和导出文章中概述的方法已经足够。

2024-03-31 05:45:00 1541 1

原创 政安晨:【示例演绎】【Python】【Google/JAX】—— 专为高性能与大规模机器学习设计

JAX是谷歌开发的一个机器学习库,专门用于高性能的数值计算和自动微分。它建立在NumPy、SciPy和Cython的基础上,并结合了XLA(Accelerated Linear Algebra)编译器,可以实现高效的计算。JAX的一个核心特性是支持自动微分。JAX的设计理念是简洁、灵活和可扩展的。JAX是一个开源项目,广泛应用于谷歌的机器学习项目中,如DeepMind的AlphaGo和OpenAI的GPT-3等。它的出现大大简化了机器学习领域的开发和研究工作,提高了计算效率和模型性能。

2024-03-30 10:22:39 1146 2

原创 政安晨:【Keras机器学习实践要点】(九)—— 保存、序列化和导出模型

这篇文章是保存、序列化和导出模型的完整指南。Keras 模型由多个组件组成:架构或配置,指定模型包含哪些层,以及它们如何连接。一组权重值("模型状态")。一个优化器(通过编译模型定义)。一组损失和度量(通过编译模型定义)。Keras API 将所有这些部分保存为统一格式,以 .keras 扩展名标记。

2024-03-30 05:45:00 730 2

原创 政安晨:【Keras机器学习实践要点】(八)—— 在 TensorFlow 中从头开始编写训练循环

Keras 提供默认的训练和评估循环、fit() 和 evaluate()。使用内置方法进行训练和评估,本文将介绍它们的用法。如果您想自定义模型的学习算法,同时还想利用 fit() 的便利性(例如,使用 fit() 训练 GAN),您可以子类化模型类并实现自己的 train_step() 方法,该方法会在 fit() 过程中重复调用。现在,如果您想对训练和评估进行非常底层的控制,您应该从头开始编写自己的训练和评估循环。这就是本文的内容。

2024-03-29 12:08:01 772 1

原创 政安晨:【Keras机器学习实践要点】(七)—— 使用TensorFlow自定义fit()

在TensorFlow中,fit()是一个非常强大和常用的训练函数,它可以批次地训练模型并监测其性能。虽然fit()提供了很多有用的默认行为,但有时您可能想自定义fit()中发生的操作。一种自定义fit()的方法是使用回调函数。另一种自定义fit()的方法是编写自定义的训练循环。最后,您还可以自定义fit()的行为通过设置fit()函数的其他参数。总而言之,TensorFlow提供了多种方法来自定义fit()函数中发生的操作。今天我们讲的就是keras api 在这里的应用方法。

2024-03-29 06:00:00 1194 1

原创 【嵌入式智能产品开发实战】(十二)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的安装运行】

在ARM-Linux系统中,C语言程序的安装和运行可以按照以下步骤进行:1.准备交叉编译工具链;2.编写C语言程序;3.使用交叉编译工具链编译程序;4.将可执行文件传输到ARM-Linux系统;5.在ARM-Linux系统中运行程序.

2024-03-29 05:45:00 1964 1

原创 政安晨:【深度学习神经网络基础】(二)—— 神经元与层

神经元是深度学习神经网络中的基本单元,模拟了生物神经系统中的神经元。它接收输入信号,并通过激活函数进行非线性转换,然后将转换后的信号传递给下一层神经元或输出。神经元具有一组可学习的权重,它们用于加权输入信号。神经网络的层是由多个神经元组成的,这些神经元之间相互连接。在神经网络中,通常有输入层、隐藏层和输出层。输入层接收外部输入数据,并将其传递给下一层。隐藏层是介于输入层和输出层之间的层,根据不同的网络结构可以有多个隐藏层。输出层则产生最终的预测结果。

2024-03-28 06:00:00 1505 1

原创 政安晨:【Keras机器学习实践要点】(六)—— 使用内置方法进行训练和评估

本文涵盖使用内置 API 进行训练和验证(如 Model.fit()、Model.evaluate() 和 Model.predict())时的训练、评估和预测(推理)模型。一般来说,无论您是使用内置循环还是编写自己的循环,模型训练和评估在每种 Keras 模型中的工作方式都是严格相同的,包括顺序模型、使用功能 API 构建的模型以及通过模型子类化从头编写的模型。

2024-03-28 05:45:00 892 1

原创 政安晨:【深度学习神经网络基础】(一)—— 逐本溯源

神经网络的出现可追溯到20世纪40年代,因此,其有相当长的发展历史。咱们将介绍神经网络的发展历史,因为你需要了解一些术语。激活函数是其中一个很好的例子,它可以缩放神经网络中神经元的值。阈值激活函数是研究人员引入了神经网络时的早期选择,而后S型激活函数、双曲正切激活函数、修正线性单元(Rectified Linear Unit,ReLU)激活函数等相继被提出。虽然目前大多数文献都建议仅使用ReLU激活函数,但你需要了解S型激活函数和双曲正切激活函数,才能理解ReLU激活函数的优势。

2024-03-27 09:25:08 1354 2

原创 政安晨:【Keras机器学习实践要点】(五)—— 通过子类化创建新层和模型

本文将涵盖构建自己的子类化层和模型所需的所有知识。您将了解以下功能:层类 add_weight()方法 可训练和不可训练的权重 build()方法 确保您的层可以与任何后端一起使用 add_loss()方法 call()中的训练参数 call()中的掩码参数 确保您的层可以序列化 让我们开始吧。

2024-03-27 06:00:00 1069 1

原创 政安晨:【Keras机器学习实践要点】(四)—— 顺序模型

Keras是一个用于构建和训练深度学习模型的开源库。在Keras中,顺序模型是最简单的一种模型类型,它是一个线性堆叠的神经网络模型。顺序模型由一系列网络层按照顺序连接而成,每个网络层都可以包含多个神经元。

2024-03-27 05:45:00 927 1

政安晨:快速学会~机器学习的Pandas数据技能(三)(重命名与合并)

政安晨:快速学会~机器学习的Pandas数据技能(三)(重命名与合并)的示例数据文件

2024-02-08

政安晨:机器学习快速入门(一){基于Python与Pandas}的示例数据包

政安晨:机器学习快速入门(一){基于Python与Pandas}的示例数据包,用于在文章:政安晨:机器学习快速入门(一){基于Python与Pandas}中给读者下载处理的示例数据

2024-02-05

哈工大《手机设计基本知识》

哈工大 系统讲述手机设计原理的知识。 偏重硬件原理,设计概要等。

2009-08-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除