Qualcomm AI Hub-API介绍

Qualcomm® AI Hub极大的简化了AI 模型部署到边缘设备的过程。本文主要介绍了Qualcomm® AI Hub使用的各种API接口,还有各个模型配置的参数数据,具体可以参考API documentation

API介绍:

Core API

API的核心功能,可直接通过qai_hub获得。

upload_dataset

上传dataset,将于30天内过期

upload_model

上传模型

get_dataset

返回给定ID的dataset

get_datasets

返回你可见的dataset列表

get_devices

返回device列表

get_device_attributes

返回可用设备属性的超级集合

get_job

返回给定ID的任务job

get_jobs

返回你可见的任务列表

get_model

返回给定ID的模型

get_models

返回模型列表

set_verbose

如果为true,API调用将进度打印到标准输出

submit_compile_job

提交编译任务

submit_profile_job

提交评测任务

submit_inference_job

提交推理任务

submit_compile_and_profile_jobs

提交编译和评测任务

管理对象

由API返回的类。这些对象由API管理,不应直接实例化。例如,要构建一个Model实例,请调用upload_Model()或get_mode()。

Dataset

Dataset不应该直接创建

Device

创建目标设备.

Model

神经网络模型对象.

Job

模型和设备的任务.

CompileJob

为一个模型,一组输入规范和一组设备编译任务.

ProfileJob

为一个模型,一组输入规范和一组设备评测任务.

InferenceJob

为一个模型,一组输入规范和一组设备推理任务.

CompileJobResult

编译任务结果的结构体

ProfileJobResult

评测任务结果的结构体.

InferenceJobResult

推理任务结果的结构体.

JobStatus

任务状态.

SourceModelType

输入模型类型.

异常

API引发的异常:

Error

API抛出的基础类异常.

UserError

用户输入过程中某些内容的异常导致故障,可能需要调整输入.

InternalError

内部API异常,你可以联系ai-hub-support@qti.qualcomm.com 寻求帮助.

常用选项

 submit_compile_job()submit_profile_job()submit_inference_job():

Option

Description

--compute_unit <units>

指定目标计算单位。当在编译任务中使用时,这可以优化各个层的代码生成。当在配置文件或推理作业中使用时,它以指定的计算单元为目标。

隐性回退CPU将由 target_runtime决定; TfLiteONNX运行时始终包括CPU回退。Options for <units> (逗号分隔的值是无序的):

  • all
    • 以所有可用的计算单元为目标,先是NPU, then GPU, then CPU.
  • npu
    • Target NPU.
  • gpu
    • Target GPU.
  • cpu
    • Target CPU.

Default:

  • npu 当目标运行时为qnn_lib_aarch64_android
  • all 对于任何其他目标运行时

Example:

  • --compute_unit npu,cpu

编译选项

 submit_compile_job():

Compile option

Description

--target_runtime <runtime>

覆盖默认的目标运行时。默认的目标运行时是从源模型派生的。Options for <runtime>:

  • tflite: TensorFlow Lite (.tflite)
  • qnn_lib_aarch64_android: Qualcomm® AI Engine Direct model library (.so) targeting AArch64 Android
  • onnx: ONNX Runtime (.ort)

Default:

源模型指定默认目标.

  • .pt : tflite
  • .aimet_pt : qnn_lib_aarch64_android
  • .aimet_onnx : qnn_lib_aarch64_android
  • .onnx : tflite

Examples:

  • --target_runtime tflite
  • --target_runtime qnn_lib_aarch64_android

--output_names "<name>[,name]..."

覆盖默认输出名称。默认情况下,模型的输出名称为output_0output_1 …. Options:

  • 输出名称的逗号分隔列表

Requirements:

  • 此选项适用当目标运行时为TensorFlow Lite时。必须为每个模型输出指定一个名称.

Default:

  • 输出模型名称 output_0output_1 ….

Examples:

  • --output_names "new_name_0,new_name_1"

--force_channel_last_input "<name>[,name]..."

--force_channel_last_output "<name>[,name]..."

覆盖通道布局。默认情况下,编译器将维护模型的输入和输出张量的布局。这通常会在最终模型中产生额外的转置层,最常见的是在开始和结束处。这些选项指示编译器以这样一种方式生成代码,即生成的模型可以使用最后一个通道布局中的输入和或在最后一个信道布局中产生输出。Options

  • 输入张量名称的逗号分隔列表
  • Requirements:
  • 当目标运行时为ONNX运行时时,此选项不适用。请注意 --force_channel_last_output 采用默认名称或 --output_names 选项中的名称.

Default:

  • 编译器将维护模型的输入和输出张量的布局.

Examples:

  • --force_channel_last_input "image,indices"
  • --force_channel_last_output "output_0,output_1"

--quantize_full_type <type>

将未量化的模型量化为指定的类型。它使用一个有代表性的数据集来量化激活和权重。如果没有提供这样的数据集,则使用随机生成的数据集。在这种情况下,生成的模型只能用作可实现性能的代理,因为该模型将无法产生准确的结果。Options

  • int8: quantize to int8
  • int16: quantize to int16
  • float16: quantize to float16

Default:

  • 无伪量化.

Examples:

  • --quantize_full_type int8

--quantize_io [true|false]

量化模型时量化输入和输出

. Options:

  • true
  • false

Default:

  • 输入和输出未量化.

Examples:

  • --quantize_io

评测和推断选项

submit_profile_job():, submit_inference_job():

Profile option

Description

--dequantize_outputs [true|false]

对输出进行去量化。默认为true. Options:

  • true
  • false

Default:

  • 输出被去量化

Examples:

  • --dequantize_outputs

--tflite_delegates <delegate>[,<delegate>]...

指定要加载和作为目标的TensorFlow Lite代理。可以指定多个代理。它们将按照指定的顺序使用。指定设备在所需计算单元上运行的最佳代理。

Options:

  • qnn
  • qnn-gpu
  • nnapi
  • nnapi-gpu
  • gpu
  • xnnpack

Default:

  • 代表的选择由指定的计算单位决定

Examples:

  • --tflite_delegates qnn,qnn-gpu

--tflite_options <option>[;<option>]...

指定TensorFlow Lite代理的行为。此选项指定为以分号分隔的子选项列表。全套子选项位于TensorFlow Lite OptionsTensorFlow Lite Delegate Options for Qualcomm® AI Engine DirectTensorFlow Lite Delegate Options for GPUv2, and TensorFlow Lite Delegate Options for NNAPI .

Examples:

  • --tflite_options number_of_threads=4;qnn_htp_precision=kHtpQuantized

--qnn_options <option>[;<option>]...

指定针对Qualcomm® AI Engine Direct模型库时的行为. 此选项指定为以分号分隔的子选项列表. 以下 Qualcomm® AI Engine Direct Options 表中提供了全套子选项.

Requirements:

  • --qnn_options 仅适用--target_runtime qnn_lib_aarch64_android.

Examples:

  • --target_runtime qnn_lib_aarch64_android --qnn_options context_priority=HIGH;context_htp_performance_mode=BALANCED

Profile Options

 submit_profile_job():

Profile option

Description

--max_profiler_iterations=<num>

指定配置文件迭代的最大次数。如果预测迭代的累积运行时间将超过--max_inference_time. 定义的执行超时,则可能会运行更少的迭代。 Options:

  • <num> 要运行的最大迭代次数.

Default:

  • 100 – 100 iterations

Examples:

  • --max_profiler_iterations=50

--max_profiler_time=<seconds>

指定执行推理所花费的最大时间。在运行时,迭代次数大致在这个限制内完成,永远不会超过--max_profiler_iterations指定的值。例如,假设提交一个概要文件作业时--max_profiler_iterations=100 --max_profiler_time=10. 这表明在循环分析推理中花费的时间不应超过10秒,如果可以在这段时间内完成,则最多可以进行100次迭代。如果推理时间的运行平均值预测另一次迭代将导致超时,则循环终止。

  • <seconds> 在设备上执行推理所需时间的软限制.

Requirements:

  • 该值必须严格为正,且不超过600

Default:

  • 600 – 10 minutes

Examples:

  • --max_profiler_time=30

TensorFlow Lite选项

适用于所有代理的--tflite_options的子选项。

TensorFlow Lite option

Description

enable_fallback=[true|false]

当没有做好准备时,回退到优先级较低的代理。如果此选项为false,则任何委派失败都将使整个作业失败。默认值为true.

invoke_interpreter_on_cold_load=[true|false]

在冷加载期间运行解释器。这将验证委托是否可以成功执行。如果发生错误,将删除失败的委托,并重新加载模型,直到找到工作配置为止。后续加载不会重新运行程序。默认值为 false.

allow_fp32_as_fp16=[true|false]

允许代表在fp32操作中使用降低的fp16精度。委派选项可能会覆盖此项。默认为 true.

force_opengl=[true|false]

尽可能强制使用OpenGL。这是为了调试目的而存在的。默认为false.

number_of_threads=<num>

要使用的线程数。默认值:为-1, 然后使用 std::thread::hardware_concurrency() / 2.

release_dynamic_tensors=[true|false]

一旦模型不使用所有中间动态张量,就强制释放它们。请谨慎使用此配置,因为它可能会以较慢的推理速度为代价降低模型的峰值内存使用量。默认为 false.

Qualcomm® AI Engine Direct的TensorFlow Lite代表选项

特定于QNN代理的--tflite_options的子选项。有关QNN选项的更多信息,请参阅高通®AI引擎直接文档中的QNN GPU后端和QNN HTP后端页面。请注意,并非所有选项都可用于所有后端。

fLite option (QNN)

Description

qnn_log_level=<option>

设置qnn的日志级别. Default: kLogLevelWarn. Options:

  • kLogOff
  • kLogLevelError
  • kLogLevelWarn
  • kLogLevelInfo
  • kLogLevelVerbose
  • kLogLevelDebug

qnn_graph_priority=<option>

设置基础图形优先级. Default: kQnnPriorityDefault. Options:

  • kQnnPriorityDefault
  • kQnnPriorityLow
  • kQnnPriorityNormal
  • kQnnPriorityNormalHigh
  • kQnnPriorityHigh
  • kQnnPriorityUndefined

qnn_gpu_precision=<option>

设置GPU后端的精度,该后端定义了图形张量(既不是输入张量也不是输出张量)的优化级别。默认为kGpuFp16. Options:

  • kGpuUserProvided
  • kGpuFp32
  • kGpuFp16
  • kGpuHybrid

qnn_gpu_performance_mode=<option>

GPU的性能模式。更高的性能消耗更多的功率。默认为kGpuHigh. Options:

  • kGpuDefault
  • kGpuHigh
  • kGpuNormal
  • kGpuLow

qnn_dsp_performance_mode=<option>

DSP performance mode. Default is kDspBurst. Options:

  • kDspLowPowerSaver
  • kDspPowerSaver
  • kDspHighPowerSaver
  • kDspLowBalanced
  • kDspBalanced
  • kDspHighPerformance
  • kDspSustainedHighPerformance
  • kDspBurst

qnn_dsp_encoding=<option>

指定量化参数的原点。默认为 kDspStatic. Options:

  • kDspStatic: 使用模型中的量化参数。
  • kDspDynamic: 使用来自模型输入的量化参数。

qnn_htp_performance_mode=<option>

HTP performance mode. Default is kHtpBurst. Options:

  • kHtpLowPowerSaver
  • kHtpPowerSaver
  • kHtpHighPowerSaver
  • kHtpLowBalanced
  • kHtpBalanced
  • kHtpHighPerformance
  • kHtpSustainedHighPerformance
  • kHtpBurst

qnn_htp_precision=<option>

HTP精度模式。仅适用于8gen1及更新版本。默认值:为kHtpFp16. Options:

  • kHtpQuantized
  • kHtpFp16

qnn_htp_optimization_strategy=<option>

优化加载时间或推理时间。默认为 kHtpOptimizeForInference.

  • kHtpOptimizeForInference
  • kHtpOptimizeForPrepare

qnn_htp_use_conv_hmx=[true|false]

使用短的conv hmx可能会带来更好的性能。然而,具有短深度和/或非对称权重的卷积可能表现出不准确的结果。默认值为true.

qnn_htp_use_fold_relu=[true|false]

使用fold-relu可能会带来更好的性能。卷积的量化范围应该相等,或者是Relu运算的子集,以获得正确的结果。默认值为false.

qnn_htp_vtcm_size=<size>

设置VTCM大小(MB)。如果未设置VTCM大小,将使用默认VTCM大小。VTCM大小必须大于0,如果VTCM大小设置为大于可用于此设备的VTCM大小,则它将被设置为可用于该设备的VTCM大小。

qnn_htp_num_hvx_threads=<num>

设置HVX线程数。如果num超过HVX线程的最大数量,则该数量将被剪裁为支持的最大线程数量。num必须大于0

适用于GPUv2的TensorFlow Lite代表选项

特定于GPUv2委托的--tflite_options的子选项。使用--tflite_delegates gpu选择GPUv2委托。有关TensorFlow Lite GPU选项的更多信息,请参阅delegate_options.h。

TfLite option (GPUv2)

Description

gpu_inference_preference=<option>

指定编译/运行时权衡。默认值为TFLITE_GPU_INFERENCE_PREFERENCE_SUSTAINED_SPEED. Options:

  • TFLITE_GPU_INFERENCE_PREFERENCE_FAST_SINGLE_ANSWER: 委托将只使用一次,因此应考虑引导/初始化时间。
  • TFLITE_GPU_INFERENCE_PREFERENCE_SUSTAINED_SPEED: 更倾向于最大限度地提高吞吐量。同一个委托将在多个输入上重复使用。
  • TFLITE_GPU_INFERENCE_PREFERENCE_BALANCED: 平衡初始化延迟和吞吐量。此选项将导致比 TFLITE_GPU_INFERENCE_PREFERENCE_FAST_SINGLE_ANSWER 稍高的初始化延迟,但其推理延迟应更接近TFLITE_GPU_INFERENCE_PREFERENCE_SUSTAINED_SPEED.

gpu_inference_priority1=<option>

gpu_inference_priority2=<option>

gpu_inference_priority3=<option>

设置最高优先级.

优先级1的默认值为TFLITE_GPU_INFERENCE_PRIORITY_MIN_LATENCY. 优先级2的默认值为 TFLITE_GPU_INFERENCE_PRIORITY_MIN_MEMORY_USAGE. 优先级3的默认值为 TFLITE_GPU_INFERENCE_PRIORITY_MAX_PRECISION. 要指定最大精度,请使用以下优先级级1-优先级3: TFLITE_GPU_INFERENCE_PRIORITY_MAX_PRECISIONTFLITE_GPU_INFERENCE_PRIORITY_AUTOTFLITE_GPU_INFERENCE_PRIORITY_AUTO. Options:

  • TFLITE_GPU_INFERENCE_PRIORITY_AUTO
  • TFLITE_GPU_INFERENCE_PRIORITY_MAX_PRECISION
  • TFLITE_GPU_INFERENCE_PRIORITY_MIN_LATENCY
  • TFLITE_GPU_INFERENCE_PRIORITY_MIN_MEMORY_USAGE

gpu_max_delegated_partitions=<num>

可以有多个可以委派的分区。这限制了要委派的最大分区数。默认为1.

NNAPI的TensorFlow Lite代表选项

特定于NNAPI委托的--tflite_options的子选项。有关NNAPI特定选项的其他信息,请参见 nnapi_delegate_c_api.h。

TensorFlow Lite option (NNAPI)

Description

nnapi_execution_preference=<option>

功率/性能权衡。默认值为 kSustainedSpeed. Options:

  • kLowPower
  • kFastSingleAnswer
  • kSustainedSpeed

nnapi_max_number_delegated_partitions=<max>

设置最大分区数。小于或等于零的值表示没有限制。如果受支持的节点的完整集合的委派将生成大于此参数的分区数,那么实际上只有<max>的分区会被加速。当前的选择是按照节点数量的递减顺序对分区进行排序,然后选择它们,直到达到限制为止。默认值为 3.

nnapi_allow_fp16=[true|false]

允许fp32作为fp16运行。默认为true.

Qualcomm® AI Engine Direct选项

-qnn_options的子选项。当目标运行时为qnn_lib_aarch64_android时,这些选项适用。有关Qualcomm® AI Engine Direct选项的更多信息,请参阅Qualcomm® AI Engine Direct文档中的QNN GPU后端和QNN HTP后端页面。请注意,并非所有选项都可用于所有后端。

Qualcomm® AI Engine Direct option

Description

context_async_execution_queue_depth_numeric=<num>

指定异步执行队列深度.

context_enable_graphs=<name>[,<name>]...

要从上下文二进制文件反序列化的图的名称。默认情况下,所有图形都处于启用状态。如果提供了无效的图形名称,则会生成错误。

context_error_reporting_options_level=<option>

设置错误报告级别. Options:

  • BRIEF
  • DETAILED

context_error_reporting_options_storage_limit=<kb>

为错误信息保留的内存量。KB为单位指定。

context_memory_limit_hint=<mb>

设置反序列化上下文的峰值内存限制提示(MB)。

context_priority=<option>

设置此上下文中图形的默认优先级。Options:

  • LOW
  • NORMAL
  • NORMAL_HIGH
  • HIGH

context_gpu_performance_hint=<option>

设置GPU性能提示。默认为HIGH. Options:

  • HIGH: 最大化GPU时钟频率。.
  • NORMAL: 平衡性能取决于电源管理.
  • LOW: 以牺牲推理延迟为代价使用最低功耗.

context_gpu_use_gl_buffers=[true|false]

如果设置为true,将使用OpenGL缓冲区。

context_htp_performance_mode=<option>

设置HTP performance mode. 默认为 BURST. Options:

  • EXTREME_POWER_SAVER
  • LOW_POWER_SAVER
  • POWER_SAVER
  • HIGH_POWER_SAVER
  • LOW_BALANCED
  • BALANCED
  • HIGH_PERFORMANCE
  • SUSTAINED_HIGH_PERFORMANCE
  • BURST

default_graph_priority=<option>

Options:

  • LOW
  • NORMAL
  • NORMAL_HIGH
  • HIGH

default_graph_gpu_precision=<option>

指定要使用的精度模式。默认为USER_PROVIDED. Options:

  • FLOAT32: 将张量数据类型转换为FP32,并选择使用FP32累加器的内核.
  • FLOAT16: 将张量数据类型转换为FP16,并尽可能选择使用FP16累加器的内核.
  • HYBRID: 将张量数据类型转换为FP16,并选择使用FP32累加器的内核.
  • USER_PROVIDED: 不优化张量数据类型.

default_graph_gpu_disable_memory_optimizations=[true|false]

当为true时,模型中的每个张量都将被分配唯一的内存,并且共享被禁用。

default_graph_gpu_disable_node_optimizations=[true|false]

当为true时,操作将不会融合,而是保持独立.

default_graph_gpu_disable_queue_recording=[true|false]

QNN GPU后端将使用队列记录来提高性能。如果为true,则禁用队列记录。

default_graph_htp_disable_fold_relu_activation_into_conv=[true|false]

对于卷积或类卷积运算后面跟着ReluReluMinMax的任何图,Relu被折叠到卷积运算中。默认值为false

default_graph_htp_num_hvx_threads=<num>

定义要为特定图形保留和使用的HVX线程数。默认值为4

default_graph_htp_optimization_type=<option>

设置优化级别以平衡准备和执行。 Options:

  • FINALIZE_OPTIMIZATION_FLAG

default_graph_htp_optimization_value=<num>

结合指定default_graph_htp_optimization_type. Options for <num>:

  • 1: 准备时间更快,图形优化程度更低。.
  • 2: 准备时间更长,图形更优化
  • 3: 最长的准备时间,最有可能是更优化的图形.

default_graph_htp_precision=<option>

如果没有设置精度值,QNN HTP后端会假设客户端希望运行量化网络。当精度值设置为FLOAT16时,QNN HTTPP后端会将用户提供的float32输入转换为FLOAT16,并使用FLOAT16数学执行图形. Options:

  • FLOAT16

default_graph_htp_disable_short_depth_conv_on_hmx=[true|false]

使用HMX指令运行所有卷积运算。默认为false.

default_graph_htp_vtcm_size=<mb>

设置要保留和使用的VTCM内存量(MB)。指定0以使用最大值。默认为4.

 作者:高通工程师,戴忠忠(Zhongzhong Dai)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/739359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第55天| Leetcode 583. 两个字符串的删除操作、Leetcode 72. 编辑距离

文章目录 Leetcode 583. 两个字符串的删除操作Leetcode 72. 编辑距离 Leetcode 583. 两个字符串的删除操作 题目链接&#xff1a;Leetcode 583. 两个字符串的删除操作 题目描述&#xff1a; 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步…

Linux命令:wget命令

1 wget命令 1.1 简介 wget命令是一种常用的网络工具&#xff0c;用于从Web服务器下载文件。 wget命令基于HTTP、HTTPS和FTP协议从指定的URL下载文件。它可以在Linux和Unix系统的命令行中使用&#xff0c;并支持各种参数来定制下载行为。Wget也可以根据HTML、XHTML和CSS页面中…

JavaScript---lazyload图片懒加载处理_IntersectionObserver

IntersectionObserver API兼容性&#xff1a; 部分代码展示&#xff1a; // 懒加载处理const imgsElem document.querySelectorAll(img);const topElem document.querySelector(#top);// IntersectionObserverconst Observer new IntersectionObserver((entries, observer) …

Redis 大key和热key问题及处理

一、说说什么是Redis、及特点&#xff1f; Redis是一个基于内存存储数据运行并支持持久化、使用key/value形式存储的高性能的nosql数据库&#xff0c;适合用于存储频繁访问&#xff0c;数据量较小的场景下。 特点&#xff1a; 支持数据持久化&#xff1a;可以将内存中的数据保…

STL(C++)

STL&#xff1a;标准模板库&#xff0c;它提供了一系列实现了常见数据结构和算法的模板类和函数。 STL的六大组件 容器 用于存放数据 std::string&#xff1a;字符串类&#xff0c;类比容器 std::vector&#xff1a;单端动态数组。支持随机访问&#xff0c;适合频繁访问元素…

PWARL CTF and others

title: 一些复杂点的题目 date: 2024-03-09 16:05:24 tags: CTF 2024年3月9日 今日习题完成&#xff1a; 1.BUU [网鼎杯 2020 半决赛]AliceWebsite 2.[RoarCTF 2019]Online Proxy 3.[Polar CTF]到底给不给flag呢 4.网鼎杯 2020 总决赛]Game Exp [RoarCTF 2019]Online Proxy …

Java设计模式之代理模式

代理模式是 Java 中常用的设计模式之一&#xff0c;它通过引入一个代理对象来控制对实际对象的访问&#xff0c;从而实现对目标对象的间接访问和控制。代理模式可以用于多种场景&#xff0c;比如权限控制、延迟加载、日志记录等。 在 Java 中&#xff0c;代理模式通常分为静态…

【软件工程导论】——软工学绪论及传统软件工程(学习笔记)

&#x1f4d6; 前言&#xff1a;随着软件产业的发展&#xff0c;计算机应用逐步渗透到社会生活的各个角落&#xff0c;使各行各业都发生了很大的变化。这同时也促使人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而&#xff0c;软件的规模越大、越复杂&#xf…

X64 页表结构

PML4&#xff08;Page Map Level 4&#xff09;是x86-64架构中用于管理虚拟内存地址翻译的四级页表结构之一。它是一种树形结构&#xff0c;由多个页目录表&#xff08;Page Directory Pointer Table&#xff0c;PDPT&#xff09;组成&#xff0c;每个PDPT有512个指向下一级页表…

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中)

Hololens 2应用开发系列&#xff08;3&#xff09;——MRTK基础知识及配置文件配置&#xff08;中&#xff09; 一、前言二、输入系统2.1 MRTK输入系统介绍2.2 输入数据提供者&#xff08;Input Data Providers&#xff09;2.3 输入动作&#xff08;Input Actions&#xff09;2…

Date类型及dayjs的使用总结

一、Date() Date数据类型用于处理日期和时间&#xff0c;它可以表示自1970年1月1日00:00:00 UTC&#xff08;Coordinated Universal Time&#xff0c;国际协调时间&#xff09;以来的毫秒数。 1.创建Date对象 例如&#xff1a;Tue Oct 31 2023 14:01:33 GMT0800 (中国标准时…

算法刷题day28

目录 引言一、截断数组二、双端队列三、日期统计 引言 这几道题是周赛里的几道题目&#xff0c;第一道题目我没用这种方法&#xff0c;但还是做出来了&#xff0c;用的一种比较特殊的思考方法&#xff0c;就是把每一个点都判断出来&#xff0c;不满足要求的就舍弃&#xff0c;…

【你也能从零基础学会网站开发】Web建站之javascript入门篇 JavaScript事件处理

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 什么是DHTML …

Linux基础命令[16]-head

文章目录 1. head 命令说明2. head 命令语法3. head 命令示例3.1 不加参数3.2 -c&#xff08;按照字节显示&#xff09;3.3 -n&#xff08;按照行数显示&#xff09;3.4 -v&#xff08;显示文件名&#xff09; 4. 总结 1. head 命令说明 head&#xff1a;用来显示文件开头&…

Linux认识与学习BASH

Linux认识与学习BASH 认识BASH这个Shellshell是什么系统的合法shell与/etc/shells功能Bash Shell的功能查询命令是否为Bash shell 的内置命令(type)命令的执行与快速编辑按钮 shell的变量功能什么是变量&#xff1f;变量的使用与设置&#xff1a;echo、变量设置规则、unset环境…

springboot网页时装购物系统链接

链接:https://pan.baidu.com/s/1mCmCSbqUCv48_a6wiLBdJg?pwdfalz 提取码:falz 2600套项目源码 https://kdocs.cn/l/cuAdxEBfLiqA 工作室精心制作&#xff0c;包括小程序项目&#xff0c;springboot项目&#xff0c;传统ssm项目&#xff0c;前后端分离项目。你可以用来制作自…

Stable Diffusion 模型下载:Comic Babes(漫画宝贝)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者datmuttdoe文件名称comicBabes_v2.safet…

20240311 大模型快讯

//社区生态// 零一万物自研全导航图向量数据库。零一万物宣布推出基于全导航图的新型向量数据库笛卡尔&#xff08;Descartes&#xff09;&#xff0c;已包揽权威榜单 ANN-Benchmarks 6 项数据集评测第一名。 //语言大模型// 清华发布大模型长文本理解方法InfLLM。InfLLM在没…

如何用 RAG 技术玩转文档问答?Milvus × 网易有道 QAnything 为你揭秘!

过去一年&#xff0c;RAG 在技术层面发展迅速&#xff0c;为向量数据库赛道添了一把火。RAG 和向量数据库的结合&#xff0c;能够有效解决幻觉、时效性差、专业领域知识不足等阻碍大模型应用的核心问题。 不久前&#xff0c;网易有道开源了自研的 RAG 引擎 QAnything。用户的任…

Q学习(Q-Learning)

Q学习是一种强化学习算法&#xff0c;用于指导代理&#xff08;Agent&#xff09;在给定环境中如何采取最优行动。它通过学习状态中的行动价值来实现&#xff0c;属于从与环境的交互中学习&#xff0c;通过尝试和错误&#xff0c;以实现目标的机器学习算法。 下面是Q学习工作原…