PyTorch 网络可视化实战:Jupyter Notebook 与 TensorWatch 的完美结合

【多媒体处理】基于C++与Qt的短视频智能裁剪系统:FFmpeg驱动的横竖屏转换与预览解决方案 项目介绍 基于C++、Qt与FFmpeg的短视频横竖屏智能裁剪与预览系统设计与实现(含模型描述及部分示例 内容概要:本文介绍了一个基于C++、Qt与FFmpeg的短视频横竖屏智能裁剪与预览系统的设计与实现。系统通过构建完整的视频处理闭环,实现了从视频读取、解码、内容分析、智能裁剪到实时预览和重新编码的全流程处理。核心架构分为五个层次:媒体输入与标准化层利用FFmpeg完成视频解复用与解码,并统一帧格式;视觉重要区域分析层通过显著性检测、边缘强度、颜色差异和运动信息识别画面中的主体区域;时序跟踪与轨迹稳定层采用卡尔曼滤波或指数平滑技术对主体位置进行连续优化,确保裁剪窗口在时间维度上的稳定性;比例约束与裁剪决策层根据目标宽高比和主体位置求解最优裁剪框,兼顾内容保留与画面合规;预览、导出与任务控制层基于Qt实现双画面同步预览、参数配置和导出控制,保障交互流畅性。项目还提供了模拟数据生成功能,可批量生成五万条包含分辨率、主体位置、运动速度、覆盖率等字段的结构化样本,支持算法验证与模型训练。; 适合人群:具备C++编程基础,熟悉Qt图形界面开发和FFmpeg多媒体处理技术的中高级研发人员,尤其适用于从事视频处理、智能编辑、自动化内容生产等相关领域的开发者或科研人员。; 使用场景及目标:①解决短视频在横竖屏转换过程中因固定裁剪导致的主体丢失问题,提升内容保留能力;②实现高效稳定的智能裁剪算法原型开发与性能测试;③构建可扩展的视频处理系统框架,支持后续集成人脸检测、人体识别或深度学习模型;④为算法优化提供标准化数据集,支持回归测试与质量评估。; 阅读建议:此资源不仅包含完整的技术架构设计和核心代码示例,还强调工程实践中对资源管理、线程安全、性能优化和异常处理的关注。建议读者结合代码实现深入理解各模块间的协作机制,并尝试替换分析器或调整平滑策略以验证不同算法效果。同时推荐运行数据生成模块,用于训练模型或开展量化对比实验。 立即下载

1. 为什么我们需要在Jupyter里“看见”神经网络?

搞深度学习,尤其是用PyTorch,我们经常把网络结构写在一行行代码里。nn.Conv2d、nn.Linear、nn.ReLU……这些层堆叠起来,就成了一个复杂的模型。但说实话,光看代码,你脑子里能立刻浮现出这个网络长什么样吗?有多少层?数据是怎么流动的?层与层之间是怎么连接的?对于新手,甚至是有经验的开发者,单凭想象去理解一个复杂网络,都是一件挺费劲的事儿。

这就好比给你一堆乐高积木的零件清单,让你在脑子里拼出完整的城堡。清单再详细,也不如直接给你一张搭建图纸来得直观。网络可视化,就是这张“搭建图纸”。它能把你用代码定义的抽象网络,变成一个清晰、直观的图形,让你一眼就能看清模型的“骨架”。

那么,为什么特别强调在 Jupyter Notebook 里做这件事呢?我自己的体会是,Jupyter 是一个探索和实验的绝佳环境。你写一段代码,立刻就能看到结果,这种即时反馈对学习和调试来说太重要了。想象一下,你刚定义了一个新的残差块,或者修改了某个通道数,马上就能在同一个Notebook里看到图形化的结构变化,这种体验是命令行或者纯脚本文件难以比拟的。它把代码编写、模型构建和结果可视化无缝地衔接在了一起,形成了一个高效的工作流闭环。

而 TensorWatch 这个工具,就是专门为这种交互式探索而生的。它最初由微软研究院开发,设计理念就是让研究者能方便地监控和可视化PyTorch模型的训练过程,其中自然也包括了模型结构本身。相比于其他一些可视化方案,TensorWatch与Jupyter的集成度更高,调用起来更像是一个“魔法命令”,几行代码就能出图,非常符合我们快速验证、即时观察的需求。

当然,光有TensorWatch还不够,它需要一个强大的“画图引擎”来把计算图渲染成漂亮的图形,这就是 Graphviz。Graphviz是一个老牌的开源图形可视化软件,擅长处理点线图关系。TensorWatch负责解析PyTorch模型,生成Graphviz能理解的描述语言,然后由Graphviz渲染成最终的SVG或图片。所以,我们这个“完美结合”的实质,是 Jupyter提供舞台,TensorWatch担任导演和编剧,Graphviz则是那位技艺高超的美术师,三者缺一不可。

2. 从零开始:搭建你的可视化工作台

好了,道理讲明白了,咱们直接上手。我把自己配置环境时踩过的坑和总结的最佳实践都揉在这里,你跟着一步步来,大概率能一路绿灯。

2.1 核心环境准备:版本匹配是头等大事

首先我得强调一个血泪教训:版本兼容性。PyTorch、TensorWatch、Graphviz,甚至Python本身,版本之间都有一些“小脾气”。如果随便装,很可能遇到各种稀奇古怪的报错。我推荐一套经过我多次实测、非常稳定的组合,这也是原文中提到的“黄金配置”:

  • Python: 3.6.5 或 3.7。不建议直接用最新的3.9+,有些老版本库的兼容性支持可能还没跟上。
  • PyTorch: 1.2.0。这是一个非常经典的稳定版本。
  • torchvision: 0.4.0,与PyTorch 1.2.0配套。
  • tensorwatch: 0.8.7。注意,这个库后续的维护似乎不太活跃,0.8.7版本与上述环境配合良好。
  • Graphviz (软件): 从官网下载的稳定版即可。
  • graphviz (Python包): 通过pip安装。
  • pydot: 1.4.2。这是一个关键的连接器,版本不对容易出问题。

怎么管理这些版本呢?我强烈建议使用 Anaconda 来创建独立的虚拟环境。打开你的Anaconda Prompt(或者终端,如果你用miniconda),执行下面的命令来创建一个新环境:

conda create -n pytorch_viz python=3.6.5
conda activate pytorch_viz

然后在这个环境里安装PyTorch。由于是历史版本,我们最好去PyTorch官网的历史版本库找安装命令,或者直接用pip指定版本安装:

pip install torch==1.2.0 torchvision==0.4.0 -f https://download.pytorch.org/whl/torch_stable.html

这样就奠定了最坚实的基础。用虚拟环境的好处是,这个配置好的环境就像是一个干净的“实验室”,不会和你电脑上其他项目的环境冲突,玩坏了删掉重来也很方便。

2.2 搞定Jupyter Notebook的内核切换

装好PyTorch环境后,你直接打开桌面的Jupyter Notebook,会发现新建文件时,可用的内核可能只有基础的“Python 3”。这可不是我们刚配好的pytorch_viz环境。我们需要把这个环境“注册”到Jupyter里。

操作很简单,但步骤要对:

  1. 确保你已经激活了pytorch_viz环境(命令行前面有(pytorch_viz)字样)。
  2. 安装ipykernel,这是Jupyter内核的依赖包:pip install ipykernel。
  3. 将当前环境添加到Jupyter的可选内核列表中:
    python -m ipykernel install --user --name pytorch_viz --display-name "PyTorch 1.2 (Visual)"
    
    这里的--name后面跟的是你conda环境的实际名称(pytorch_viz),--display-name是你在Jupyter界面上看到的漂亮名字,可以自己起个好认的。

完成之后,关闭所有已经打开的Jupyter Notebook页面和服务器。重新启动Jupyter,点击“New”,你就会惊喜地发现多了一个“PyTorch 1.2 (Visual)”的选项。选择它,你在这个Notebook里使用的就是咱们配好的、包含了特定版本PyTorch的完整环境了。这一步是很多新手会忽略的,结果就是一直在基础环境里折腾,怎么也导不入torch包。

2.3 安装可视化“三剑客”:Graphviz软件与Python包

接下来安装我们的“美术师”Graphviz。这里有个关键点:你需要安装两个东西,一个是Graphviz软件本身(用来画图的引擎),另一个是Python的graphviz包(用来调用这个引擎的接口)。

首先安装Python包(在pytorch_viz环境下):

pip install graphviz

这个通常很快。

然后安装Graphviz软件。你需要去Graphviz的官网下载安装程序。对于Windows用户,原文中给出的下载链接可能已经变化,更稳妥的方法是访问Graphviz的官方下载页(https://graphviz.org/download/),选择适合你操作系统的版本。下载完成后,运行安装程序。安装过程中,请务必留意一个选项:“Add Graphviz to the system PATH for all users”或类似表述,一定要勾选上! 这步至关重要,它让系统知道Graphviz的可执行文件(比如dot命令)在哪里,否则Python包找不到它,后面就会报错。

安装完成后,你可以验证一下。打开一个新的命令行(需要重启命令行窗口以使环境变量生效),输入:

dot -V

如果显示了Graphviz的版本信息,比如dot - graphviz version 2.50.0,那就说明软件安装和环境变量配置都成功了。

2.4 安装TensorWatch及其他辅助依赖

“美术师”就位了,现在请“导演”TensorWatch登场。回到激活的pytorch_viz环境,我们一次性安装所有必需的Python包:

pip install tensorwatch==0.8.7 pydot==1.4.2 scikit-learn==0.24.2 pandas==1.1.5

这里解释一下每个包的作用:

  • tensorwatch==0.8.7: 主角,负责模型可视化。
  • pydot==1.4.2: 另一个处理Graphviz文件的Python接口,TensorWatch内部会用到它。版本锁定为1.4.2是为了避免兼容性问题。
  • scikit-learn和pandas: 虽然不是可视化直接必需的,但TensorWatch的一些高级功能或示例可能会用到它们,装上以备不时之需,版本按原文推荐即可。

现在,你的可视化“全家桶”就已经在虚拟环境里准备完毕了。

3. 实战演练:让你的第一个网络“跃然纸上”

环境配好了,手有点痒了吧?咱们马上在Jupyter Notebook里跑一个真实的例子。打开Jupyter,选择我们刚创建的“PyTorch 1.2 (Visual)”内核,新建一个Notebook。

3.1 第一个可视化测试与经典报错解决

我们先用一个经典的、现成的模型来测试。在第一个单元格里,输入以下代码:

from torchvision.models import vgg16  # 导入经典的VGG16模型
from tensorwatch import draw_model    # 导入TensorWatch的绘图函数

# 实例化一个VGG16模型
mynet = vgg16()
# 绘制模型结构。第二个参数是输入张量的形状 [batch_size, channels, height, width]
draw_model(mynet, [1, 3, 224, 224])

满怀期待地按下Shift+Enter运行,结果很可能不是一张漂亮的图,而是一段红色的报错信息,核心内容可能是:'Dot' object has no attribute '_repr_svg_'。

别慌,这个几乎是每个第一次用TensorWatch的人都会遇到的“经典关卡”。问题出在pydot库与Python新版本的兼容性上。解决它需要一点“小手术”。

解决办法如下:

  1. 找到你当前Python环境(pytorch_viz)的site-packages目录。一个简单的查找方法是,在Jupyter Notebook里新建一个单元格,运行:
    import site; site.getsitepackages()
    
    它会输出路径列表,通常第一个就是。比如可能是C:\Users\你的用户名\Anaconda3\envs\pytorch_viz\Lib\site-packages 或者 /home/username/anaconda3/envs/pytorch_viz/lib/python3.6/site-packages。
  2. 在这个site-packages目录下,找到名为tensorwatch的文件夹,进入,再找到pytorch_draw_model.py这个文件。
  3. 用任何文本编辑器(比如VS Code、Notepad++,甚至记事本)打开这个文件。
  4. 找到第13行左右(不同版本可能略有差异),你会看到一行代码类似:
    return self.dot._repr_svg_() if hasattr(self.dot, ‘_repr_svg_’) else self.dot
    
    或者直接就是 return self.dot._repr_svg_()。
  5. 将这一行修改为:
    return self.dot.create_svg().decode()
    
    这个修改的目的是用pydot库更通用的create_svg()方法来生成SVG格式数据,并用decode()将其转换为字符串。
  6. 保存文件。

修改完成后,有一个极其重要的步骤:回到Jupyter Notebook,重启内核! 点击菜单栏的“Kernel” -> “Restart”。因为Python已经加载了旧的模块代码到内存中,不重启内核,你的修改是不会生效的。

内核重启后,再次运行刚才的绘图代码。这次,你应该能看到一个非常长的、纵向展开的网络结构图了!图中,每个方框代表一个计算层,箭头代表数据流向,层名、输入输出形状等信息都标注得清清楚楚。你可以拖动滚动条,从输入层一直浏览到输出层,对整个VGG16的层次堆积有一个前所未有的直观认识。

3.2 可视化你自己的自定义网络

用现成模型测试成功,只是第一步。我们更想看的,是自己设计的网络。下面我们来定义一个简单的卷积神经网络(CNN),并可视化它。

import torch
import torch.nn as nn
from tensorwatch import draw_model

# 定义一个简单的CNN
class MySimpleCNN(nn.Module):
    def __init__(self):
        super(MySimpleCNN, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3, padding=1)
        self.relu1 = nn.ReLU()
        self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)
        
        self.conv2 = nn.Conv2d(in_channels=16, out_channels=32, kernel_size=3, padding=1)
        self.relu2 = nn.ReLU()
        self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)
        
        self.flatten = nn.Flatten()
        # 假设经过两次池化后,特征图大小是 56x56 (如果输入是224x224)
        self.fc1 = nn.Linear(in_features=32 * 56 * 56, out_features=128)
        self.relu3 = nn.ReLU()
        self.fc2 = nn.Linear(in_features=128, out_features=10) # 10个分类

    def forward(self, x):
        x = self.pool1(self.relu1(self.conv1(x)))
        x = self.pool2(self.relu2(self.conv2(x)))
        x = self.flatten(x)
        x = self.relu3(self.fc1(x))
        x = self.fc2(x)
        return x

# 实例化并可视化
my_cnn = MySimpleCNN()
# 注意输入形状要和网络第一层匹配
draw_model(my_cnn, [1, 3, 224, 224])

运行这段代码,你就能看到MySimpleCNN这个自定义类的结构图了。通过这个图,你可以清晰地验证:

  • 卷积层conv1的输入输出通道数是否正确。
  • 池化层pool1之后,特征图的尺寸是否如你预期那样减半。
  • Flatten层是如何将多维特征图“压平”成一维向量的。
  • 全连接层fc1的输入特征数是否等于Flatten后的向量长度(这里是32*56*56)。这里非常容易出错,如果计算错了,图可能画不出来,或者模型运行时才会报维度错误。可视化帮你提前发现了这个问题。

3.3 探索TensorWatch的更多可视化技巧

基础的绘图功能掌握了,TensorWatch还有一些小技巧可以让可视化更高效。

控制图的复杂度:对于非常深的网络(如ResNet-152),默认绘制的图会巨大无比,在Jupyter里查看可能很卡。draw_model函数有一个depth参数可以控制展开的深度。例如draw_model(model, [1,3,224,224], depth=2)可能只显示最高几层的模块结构,适合看宏观架构。

结合模型摘要:可视化是看“形”,有时候我们还想看“数”,比如每一层的参数数量。可以结合torchsummary库(需要单独安装:pip install torchsummary)来使用:

from torchsummary import summary

summary(my_cnn, input_size=(3, 224, 224), device='cpu')

这段代码会在下方输出一个表格,详细列出每一层的类型、输出形状、参数数量。左边看图理解结构,右边看表掌握参数量,两者结合,你对模型的理解就立体起来了。

可视化子模块:如果你的网络是由几个大的子模块(如Backbone、Neck、Head)组成的,你可以单独可视化其中一个部分,让图形更聚焦:

# 假设my_cnn有一个特征提取的子模块叫`features`
draw_model(my_cnn.features, [1, 3, 224, 224])

4. 避坑指南与最佳实践

走通了整个流程,我再来分享几个我踩过坑后总结的经验,能让你用得更顺手。

关于环境变量:Graphviz安装后如果dot命令还是找不到,除了检查安装时是否勾选添加PATH,还可以手动添加。将Graphviz安装目录下的bin文件夹路径(例如C:\Program Files\Graphviz\bin)添加到系统的环境变量PATH中,然后重启命令行和Jupyter Notebook服务器。

关于内核重启:在Jupyter中,每当你安装了新的Python包,或者修改了像pytorch_draw_model.py这样的库文件,都必须重启内核,新的更改才会被加载。这是一个非常重要的习惯。

版本问题的变通:如果你因为项目原因必须使用更新的PyTorch版本(比如1.7+),而TensorWatch 0.8.7可能兼容性不佳。除了尝试寻找更晚的TensorWatch版本外,也可以考虑PyTorch官方自带的torchviz库,或者另一个非常强大的工具 Netron。Netron支持离线打开模型文件(如PyTorch的.pt或.pth文件),提供交互式查看,功能非常专业。你可以用torch.jit.trace或torch.jit.script导出模型,然后用Netron打开查看。

图形渲染太慢或太大:如果网络极其复杂,生成SVG图可能会让浏览器卡顿。你可以考虑将可视化输出到文件,然后用图片查看器打开。虽然TensorWatch的draw_model主要针对Jupyter,但你可以通过一些方法捕获其输出的SVG字符串,保存为文件。或者,直接使用graphviz库的原始接口来生成PDF或PNG,虽然代码会稍微复杂一点,但对于超大模型更稳定。

用于教学与沟通:最后,别忘了这个工具的巨大潜力——用于教学和团队沟通。在文档、技术报告甚至PPT里,插入一张自动生成的、清晰准确的网络结构图,比用绘图软件手动画一个要专业和高效得多,而且能保证与代码完全一致。我经常在项目文档的开头,先放一张核心模型的可视化图,让读者(包括一段时间后的我自己)能快速建立起对项目的整体认知。

政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx 政府科技管理者如何提升科技成果转化项目进场交易的备案效率? 立即下载

相关推荐

科技中介服务机构如何通过智能体技术提升服务效率与专业度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

PyTorch网络可视化实战:Jupyter Notebook与TensorWatch的完美结合

本文详细介绍了如何在Jupyter Notebook中使用TensorWatch和Graphviz实现PyTorch网络可视化,帮助开发者直观理解复杂模型结构。从环境配置到实战案例,涵盖ResNet等经典网络的可视化方法,并提供了常见问题解决方案和优化技巧,大幅提升深度学习模型开发效率。

weixin_29062671的博客 182

产业园区如何高效对接企业技术需求并推动成果转化?观点作者:科易网-国家科技成果转化(厦门)示范基地.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

光伏板太阳能板尘土灰尘脏污检测数据集VOC+YOLO格式1006张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

政府科技管理者在推动科技成果转化时,如何高效整合区域创新要素资源?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

法律服务业AI知识库与大模型训练平台规划方案.pptx

法律服务业AI知识库与大模型训练平台规划方案.pptx

无功优化电网故障下分布式能源系统多目标优化[并网转换器(GCC)](Matlab代码&Simulink实现)

内容概要:本文详细介绍了基于Plecs或Simulink平台构建的全桥LLC谐振变换器仿真模型,重点研究了变频控制与移相混合控制策略下的闭环系统设计与参数优化方法。内容涵盖全桥LLC谐振变换器的工作原理、小信号建模技术(如扩展描述函数EDF)、PID控制器参数整定过程以及软开关实现条件,并通过仿真验证了系统在稳态输出性能、动态响应特性(如启动过程与负载阶跃)和频率调节平滑性等方面的优良表现。同时提供了完整的仿真模型、参数设计报告及说明文档,有助于读者复现结果并深入理解控制机制与建模细节。; 适合人群:具备电力电子、自动控制等相关专业知识背景,从事高效率电源设计、新能源变换系统研发的工程师及高等院校电力电子与电力传动方向的研究生。; 使用场景及目标:①掌握LLC谐振变换器的小信号建模与闭环控制系统设计方法;②学习并应用变频与移相结合控制策略提升电源转换效率;③支撑科研项目中的电力电子系统仿真验证或学位论文课题开发;④复现高水平学术论文中关于谐振变换器的控制方案与性能分析。; 阅读建议:建议结合所提供的仿真模型与参数设计资料,边运行仿真边对照文章内容理解控制逻辑与建模过程,特别关注小信号模型的建立方法与PID控制器参数整定环节,以增强对实际工程问题的分析与设计能力。

政府科技管理者在推动科技成果转化时,如何精准识别区域内的技术供需匹配问题?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文围绕两相交错并联Boost电路的Simulink仿真模型展开,旨在通过仿真手段深入研究该电路在电力电子系统中的工作特性与性能优势。文章系统阐述了两相交错并联Boost电路的拓扑结构、工作原理及其在提升系统效率、减小输入电流纹波、均衡电流分配方面的显著优势。通过构建完整的Simulink仿真模型,对电路在不同负载与输入条件下的动态响应、稳态性能及控制策略进行了全面分析与验证。重点设计并实现了电压电流双闭环PI控制策略,详细论述了PI控制器的参数整定方法、占空比调节机制以及交错并联所带来的均流效果。仿真结果表明,所构建的模型能够有效提升系统的动态响应速度与稳定性,显著降低输入电流的谐波含量与纹波幅值,验证了交错并联技术在中高功率DC-DC变换应用中的优越性。; 适合人群:具备电力电子技术基础、熟悉Simulink仿真的电气工程及相关专业本科生、研究生,以及从事电源系统设计、新能源变换器研发的工程技术人员。; 使用场景及目标:①学习和掌握交错并联Boost电路的拓扑结构、工作原理与建模方法;②开展电力电子变换器的仿真分析、控制器设计与参数优化;③为实际工程项目中的高性能DC-DC变换器设计,特别是追求低输入纹波和高功率密度的应用场景,提供理论支撑与仿真验证依据。; 阅读建议:建议读者结合Simulink模型文件同步操作,深入理解主电路各模块、双闭环控制结构及PWM调制环节的参数设置与逻辑实现,重点关注PI控制器的参数整定过程与交错控制的时序配合,并可通过调整输入电压、负载大小及控制参数进行对比实验,以深化对交错并联技术优势及其控制策略的理解。

科技中介服务机构如何借助平台降低服务门槛并提升专业服务能力?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

秋葵成熟度检测数据集VOC+YOLO格式508张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

高空作业栏杆检测数据集VOC+YOLO格式230张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

景嘉微 JM 9100 系列 麒麟操作系统驱动包 x86架构

景嘉微 JM 9100 系列 麒麟操作系统驱动包 x86架构

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

【嵌入式底层知识修炼】按键和LED共用IO口的分时复用扫描方法

文章目录01 - PCB原理图例程02 - 分时复用的注意项和设计2.1 - 注意项2.2 - 设计03 - 代码实现 只要我跑的速度够快,寂寞就追不上我 只要Key和Led切换速度够快,人眼就看不出来 ————小白   如果你存在按键Key和显示Led共用同一个IO时,需要分时复用的需求,则可以移植代码进行使用: 代码所占code少于0.5K 线程安全,中断安全 可移植性高,配置容易 注意:系统需要存在一个至少为1ms的时钟中断 01 - PCB原理图例程   举2个Key和Led共用IO口的

单眼皮根号三的博客 1万+
上一篇: 深入解析Presto(Trino)逻辑执行计划优化与Fragment分段机制
下一篇: Prometheus安全登录配置实战:从bcrypt加密到web.yml部署
linux6sysadmin
博客等级 码龄4年 59粉丝 1615原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值