Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Flutter 中获取地理位置[Flutter专题11]

Flutter 中获取地理位置[Flutter专题11]

作者头像
徐建国
发布于 2021-11-30 12:54:57
发布于 2021-11-30 12:54:57
3.6K00
代码可运行
举报
文章被收录于专栏:个人路线个人路线
运行总次数:0
代码可运行

Flutter 中获取地理位置

如今,发现用户位置是移动应用程序非常常见且功能强大的用例。如果您曾经尝试过在 Android 中实现位置,您就会知道样例代码会变得多么复杂和混乱。

但这与 Flutter 不同——它有很多令人惊叹的包,可以为您抽象出样板代码,并使实现地理定位成为梦想。另一个好的方面是您可以在 Android 和 iOS 上获得这些功能。

让我们快速浏览一下我们今天正在构建的用于收集位置数据的内容:

Flutter 地理定位演示

本文将带您了解两个最流行且易于使用的 Flutter 地理定位包。

让我们从location开始,这是Flutter 最喜欢的包。这很简单。只需三个简单的步骤,您就可以获取当前用户位置以及处理位置权限。

先决条件

在继续前进之前,让我们快速检查一下我们需要的东西:

  • 该?FlutterSDK
  • 编辑器;您可以使用 Visual Code 或 Android Studio
  • 至少对 Flutter 有初级的了解

差不多就是这样!

使用 Flutter 定位包

设置

将依赖项添加到您的文件中:pubspec.yaml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    location: ^4.3.0

由于 Android 和 iOS 处理权限的方式不同,因此我们必须在每个平台上分别添加它们。

安卓版

将以下位置权限添加到:AndroidManifest.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

如果您还想在后台访问用户的位置,请在访问后台位置之前使用该API,并在清单文件中添加后台权限:enableBackgroundMode({bool enable})

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
对于 iOS

将以下位置权限添加到:Info.plist

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<key>NSLocationWhenInUseUsageDescription</key> 
<string>此应用需要访问您的位置</string>

NSLocationWhenInUseUsageDescription是您需要的唯一许可。这也允许您访问后台位置,唯一需要注意的是,当应用程序在后台访问位置时,状态栏中会显示蓝色徽章。与 Android 不同,我们在其中添加了单独的权限以在后台访问用户的位置。

位置权限

我们需要在请求用户位置之前检查位置服务状态和权限状态,这可以使用以下几行代码轻松完成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Location location = new Location();

bool _serviceEnabled;
PermissionStatus _permissionGranted;

_serviceEnabled = await location.serviceEnabled();
if (!_serviceEnabled) {
 _serviceEnabled = await location.requestService();
 if (!_serviceEnabled) {
   return null;
 }
}

_permissionGranted = await location.hasPermission();
if (_permissionGranted == PermissionStatus.denied) {
 _permissionGranted = await location.requestPermission();
 if (_permissionGranted != PermissionStatus.granted) {
   return null;
 }
}

首先,我们创建一个由Location()包提供的对象,location反过来为我们提供了两个有用的方法。检查设备位置是否已启用或用户是否已手动禁用它。``serviceEnabled()

对于后者,我们显示了一个原生提示,允许用户通过调用快速启用位置,然后我们再检查一次,如果他们从提示中启用了它。requestService()

一旦我们确定启用了位置服务,下一步就是通过调用它来检查我们的应用程序是否具有使用它的必要权限,这将返回.hasPermission()``PermissionStatus

PermissionStatus是可以具有以下三个值之一的枚举:

  • PermissionStatus.granted: 定位服务权限已被授予
  • PermissionStatus.denied: 定位服务权限被拒绝
  • PermissionStatus.deniedForever: 位置服务权限被用户永久拒绝。这仅适用于 iOS。在这种情况下不会显示对话框requestPermission()

如果状态为 ,我们可以通过调用显示请求位置权限的系统提示。对于 status ,我们可以立即访问 location ,因此我们返回一个.denied,``requestPermission()``granted``null

如果您还想在后台访问用户位置,请使用。location.enableBackgroundMode(enable: **true**)

获取当前位置

如果位置服务可用并且用户已授予位置权限,那么我们只需两行代码即可获取用户位置 - 不,我不是在开玩笑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LocationData _locationData;
_locationData = await location.getLocation();

LocationData类提供以下位置信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class LocationData {
  final double latitude; // Latitude, in degrees
  final double longitude; // Longitude, in degrees
  final double accuracy; // Estimated horizontal accuracy of this location, radial, in meters
  final double altitude; // In meters above the WGS 84 reference ellipsoid
  final double speed; // In meters/second
  final double speedAccuracy; // In meters/second, always 0 on iOS
  final double heading; // Heading is the horizontal direction of travel of this device, in degrees
  final double time; // timestamp of the LocationData
  final bool isMock; // Is the location currently mocked
}

您还可以通过添加onLocationChanged侦听器在用户位置发生变化时监听位置更新来获得连续回调,这是出租车应用程序、司机/骑手应用程序等的一个很好的用例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location.onLocationChanged.listen((LocationData currentLocation) {
  // current user location
});

注意,一旦您想停止收听更新,请不要忘记取消流订阅。

瞧!现在我们有了用户位置的当前纬度和经度值。

让我们利用这些纬度和经度值来获取用户的完整地址或?反向地理编码。

为此,我们将使用另一个惊人的 Flutter 包:?geocode。

使用 Flutter 地理编码包

设置

将依赖项添加到您的文件中:pubspec.yaml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies:
    geocode: 1.0.1

获取地址

获取地址再简单不过了。就打电话吧。就是这样!带有空检查的完整函数如下所示:reverseGeocoding(latitude: lat, longitude: lang)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Future<String> _getAddress(double? lat, double? lang) async {
 if (lat == null || lang == null) return "";
 GeoCode geoCode = GeoCode();
 Address address =
     await geoCode.reverseGeocoding(latitude: lat, longitude: lang);
 return "${address.streetAddress}, ${address.city}, ${address.countryName}, ${address.postal}";
}

没那么简单!

完整的代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class GetUserLocation extends StatefulWidget {
 GetUserLocation({Key? key, required this.title}) : super(key: key);
 final String title;

 @override
 _GetUserLocationState createState() => _GetUserLocationState();
}

class _GetUserLocationState extends State<GetUserLocation> {
 LocationData? currentLocation;
 String address = "";

 @override
 Widget build(BuildContext context) {
   return Scaffold(
     appBar: AppBar(),
     body: Center(
       child: Padding(
         padding: EdgeInsets.all(16.0),
         child: Column(
           mainAxisAlignment: MainAxisAlignment.center,
           children: <Widget>[
             if (currentLocation != null)
               Text(
                   "Location: ${currentLocation?.latitude}, ${currentLocation?.longitude}"),
             if (currentLocation != null) Text("Address: $address"),
             MaterialButton(
               onPressed: () {
                 _getLocation().then((value) {
                   LocationData? location = value;
                   _getAddress(location?.latitude, location?.longitude)
                       .then((value) {
                     setState(() {
                       currentLocation = location;
                       address = value;
                     });
                   });
                 });
               },
               color: Colors.purple,
               child: Text(
                 "Get Location",
                 style: TextStyle(color: Colors.white),
               ),
             ),
           ],
         ),
       ),
     ),
   );
 }

 Future<LocationData?> _getLocation() async {
   Location location = new Location();
   LocationData _locationData;

   bool _serviceEnabled;
   PermissionStatus _permissionGranted;

   _serviceEnabled = await location.serviceEnabled();
   if (!_serviceEnabled) {
     _serviceEnabled = await location.requestService();
     if (!_serviceEnabled) {
       return null;
     }
   }

   _permissionGranted = await location.hasPermission();
   if (_permissionGranted == PermissionStatus.denied) {
     _permissionGranted = await location.requestPermission();
     if (_permissionGranted != PermissionStatus.granted) {
       return null;
     }
   }


   _locationData = await location.getLocation();

   return _locationData;
 }

 Future<String> _getAddress(double? lat, double? lang) async {
   if (lat == null || lang == null) return "";
   GeoCode geoCode = GeoCode();
   Address address =
       await geoCode.reverseGeocoding(latitude: lat, longitude: lang);
   return "${address.streetAddress}, ${address.city}, ${address.countryName}, ${address.postal}";
 }
}

常见的陷阱

尽管这些软件包让我们的生活变得更轻松,而且我们不必处理在 Android 和 iOS 中本地访问位置的复杂过程,但您可能会面临很多问题。让我们来看看它们以及可以帮助您修复这些问题的步骤:

  • 应用内存泄漏:如果您一直在收听位置更新,请确保取消流订阅,一旦您想停止收听更新
  • 用户必须接受位置权限才能始终允许使用后台位置。位置权限对话框提示中未显示始终允许的 Android 11 选项。用户必须从应用程序设置中手动启用它
  • 用户可能在 iOS 上永远拒绝定位,因此不会显示要求定位权限的本机提示。确保处理这种边缘情况requestPermisssions()
  • 用户可能随时从应用程序设置中撤销位置权限,因此在访问位置数据之前,请确保在应用程序恢复时检查它们

结论

由于 Flutter 简化了访问位置,因此我们作为开发人员可能会立即将其添加到我们的应用程序中。但同时,我们需要确保我们的应用程序真正适合请求用户位置并利用它为用户增加一些价值的用例,而不是仅仅将位置数据发送到服务器

随着即将推出的 Android 和 iOS 操作系统版本中安全性和隐私性的提高,访问位置数据而不向用户提供价值可能会导致您的应用程序被商店拒绝。有很多很好的用例,您可以使用用户位置,例如,根据用户位置为食品/外卖应用程序个性化主屏幕,该应用程序显示按用户当前位置的接近程度订购的餐厅。取件/送货应用程序是最常见的用例。

您还可以在您实际想要使用的特定屏幕上询问用户位置,而不是立即在主屏幕上询问。这使用户更清楚,并且他们不太可能拒绝位置权限。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 坚果前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
大模型实操 | LoRA、QLoRA微调大模型实战技巧分享,含常见QA解答!
今天给大家分享的这篇文章是关于LoRA微调大模型实操技巧,讨论了从实验中得出的主要经验和教训;此外,本文将解答一些与LoRA技术相关的常见问题。如果你对于微调定制化的大语言模型感兴趣,希望这些见解能够帮助你快速起步。
ShuYini
2023/12/28
10.1K0
大模型实操 | LoRA、QLoRA微调大模型实战技巧分享,含常见QA解答!
KDD'22|序列推荐:多行为超图增强的Transformer
本文主要针对序列推荐场景学习用户动态偏好,以往的方法更多的是关注单一交互类型,本文设计了一个多行为超图增强的 Transformer 框架 (MBHT) 来捕获短期和长期的跨类型行为依赖关系。具体来说,多尺度 Transformer 结合低秩自注意力,从细粒度和粗粒度级别联合编码行为感知序列模式。将全局多行为依赖商品合并到超图神经架构中,捕获分层的长期商品相关性。
秋枫学习笔记
2022/09/19
1.3K0
​FlattenQuant | 推动低比特量化技术突破,大幅提升大型语言模型的计算效率和部署性能!
大型语言模型(LLM)的卓越能力近年来产生了重大影响(OpenAI, 2023; Ge等人,2023; Zhao等人,2023)。各种LLM已经被发布并在现实世界的生产环境中得到应用(Eloundou等人,2023)。因此,对于LLM的部署有着广泛的需求。
集智书童公众号
2024/04/25
5050
​FlattenQuant | 推动低比特量化技术突破,大幅提升大型语言模型的计算效率和部署性能!
LLM 大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、AutoAWQ)
模型的推理过程是一个复杂函数的计算过程,这个计算一般以矩阵乘法为主,也就是涉及到了并行计算。一般来说,单核CPU可以进行的计算种类更多,速度更快,但一般都是单条计算;而显卡能进行的都是基础的并行计算,做矩阵乘法再好不过。如果把所有的矩阵都加载到显卡上,就会导致显卡显存的占用大量增加,尤其是LLM模型大小从7b、14b、34b到几百b不等,占用显存的大小就是惊人的数字,如何在减少运算量和显存占用的条件下,做到推理效果不下降太多呢?在这里需要引入浮点数和定点数的概念。
汀丶人工智能
2024/05/26
2.2K0
LLM 大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、AutoAWQ)
​中科院联合多所高校提出 AdvLoRA | 通过数据增强,攻击检测等对抗模型攻击,提高模型安全性和鲁棒性!
随着VLMs规模的增大,用全参数更新来提高VLMs的对抗鲁棒性的传统对抗训练方法将导致高昂的计算和存储成本。近年来,由于在调整大规模预训练模型方面的显著成功,参数高效微调(PEFT)技术作为新型的适应范式受到了广泛关注。PEFT技术可以使用极小的额外可调参数调整VLMs,并且在性能上与FFT方法相当或更优。尽管PEFT技术在自然场景中取得了显著的成功,但在对抗攻击场景中的应用仍然很大程度上未被探索。但简单地在传统适应方法上应用对抗训练将导致1)防御性能有限和2)计算和存储成本高昂。为了验证作者的观点,作者在图2中可视化了不同对抗适应方法的对抗鲁棒性性能和可调参数数量。从结果中,作者发现FFT和UniAdapter等现有适应方法会导致大的参数成本。此外,LoRA、LP和Aurora对对抗攻击并不鲁棒。
AIGC 先锋科技
2024/07/08
4180
​中科院联合多所高校提出 AdvLoRA | 通过数据增强,攻击检测等对抗模型攻击,提高模型安全性和鲁棒性!
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
深度神经网络在各种应用中取得了显著的成功,包括图像分类、目标检测和语义分割。然而,将它们部署在边缘设备(如移动电话、智能相机和无人机)上却是一项重大的挑战,因为这些设备通常具有有限的计算和内存资源。这些设备通常具有有限的电池寿命、存储容量和处理能力,这使得执行复杂的神经网络具有挑战性。
集智书童公众号
2023/11/17
9350
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
KDD'21「华为」数值型特征embedding方法
这类方法不做embedding,而是直接用原始的数值作为特征,或者在数值上面做一些改进,例如youtube对于数值型特征分别做平方和平方根得到
秋枫学习笔记
2022/09/19
1.7K0
北航提出 PTQ4SAM | 一种高效的分割任何模型训练后量化框架,实现了无损精度,速度提高了3.9 倍 !
具有卓越的零样本能力和用户友好的灵活提示技术,Segment Anything Model(SAM)最近已成为一系列通用视觉应用中的新型基础模型,包括图像分割、目标检测、跟踪和其他下游任务。然而,SAM中的 Transformer 架构需要密集的计算和内存占用,这阻碍了在资源受限的边缘设备上的实际部署。
AIGC 先锋科技
2024/07/08
6180
北航提出  PTQ4SAM  |  一种高效的分割任何模型训练后量化框架,实现了无损精度,速度提高了3.9 倍 !
QLoRa:在消费级GPU上微调大型语言模型
大多数大型语言模型(LLM)都无法在消费者硬件上进行微调。例如,650亿个参数模型需要超过780 Gb的GPU内存。这相当于10个A100 80gb的gpu。就算我们使用云服务器,花费的开销也不是所有人都能够承担的。
deephub
2023/08/30
1.1K0
QLoRa:在消费级GPU上微调大型语言模型
解读LoRA
大模型调优(finetuning)不仅仅是参数的优化,同样会受到非功能性约束的挑战,例如:
半吊子全栈工匠
2023/12/20
1K0
解读LoRA
了解大语言模型的参数高效微调(Parameter-Effcient Fine-Tuning)
大语言模型在众多应用领域实现了突破性的进步,显著提升了各种任务的完成度。然而,其庞大的规模也带来了高昂的计算成本。这些模型往往包含数十亿甚至上千亿参数,需要巨大的计算资源来运行。特别是,当需要为特定的下游任务定制模型时,尤其是在计算能力有限的硬件平台上,这一挑战尤为突出。
叶庭云
2024/05/25
1.3K0
了解大语言模型的参数高效微调(Parameter-Effcient Fine-Tuning)
LowRA框架实现每参数低于2 Bits LoRA微调,内存降50%,释放受限环境潜力!
在人工智能(AI)领域,随着技术的飞速发展,研究者们对AI算法、模型及其应用的研究日益深入。本文旨在探讨AI在各个领域的应用现状、挑战与发展趋势,以期为我国AI产业的发展提供有益的参考。
未来先知
2025/03/13
1180
LowRA框架实现每参数低于2 Bits LoRA微调,内存降50%,释放受限环境潜力!
港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型
凭借令人印象深刻的能力,对大型语言模型(如LLaMA 2,GPT-3.5 Turbo和Gemini)进行特定领域和功能的微调(例如模型对齐和指令调优)变得越来越受欢迎。为了减轻完全微调的高成本,参数高效微调(PEFT),特别是LoRA,通过调整少数参数并冻结其余参数,已成为一种轻量级解决方案。然而,随着模型规模的迅速扩大,对进一步提高参数效率的需求变得越来越迫切,特别是在多LoRA场景中。
集智书童公众号
2024/03/11
4710
港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型
碾压LoRA!Meta & CMU | 提出高效大模型微调方法:GaLore,内存可减少63.3%
大模型训练通常会遇到内存资源的限制。目前常用的内存减少方法低秩适应(LoRA),通过引入低秩(low-rank)适配器来更新模型的权重,而不是直接更新整个权重矩阵。然而,这种方法在预训练和微调阶段通常表现不佳,为此,本文作者提出了梯度低秩映射(Gradient Low-Rank Projection ,「GaLore」),这是一种允许「全参数」学习的训练策略,并且比 LoRA 等常见的低秩适应方法更节省内存,相比BF16内存减少了63.3% 。
ShuYini
2024/03/11
1.1K0
碾压LoRA!Meta & CMU | 提出高效大模型微调方法:GaLore,内存可减少63.3%
LRP-QViT完美而来 | 输出层分配相关性+剪切通道让Swin Transformer量化后居然涨1.5个点
视觉 Transformer (ViTs)在各种视觉任务上取得了最先进(SOTA)的性能,包括图像分类,目标检测和分割。然而,它们的计算需求高、内存占用大且能源消耗大,这使得在资源受限的平台部署起来不切实际。压缩和加速技术已经被研究用于ViTs,旨在在保持性能的同时减少原始网络大小。用于模型缩减的各种方法包括网络剪枝,低秩分解,量化,知识蒸馏,以及动态标记减少。
集智书童公众号
2024/01/29
1K0
LRP-QViT完美而来 | 输出层分配相关性+剪切通道让Swin Transformer量化后居然涨1.5个点
SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021
论文: Fast Convergence of DETR with Spatially Modulated Co-Attention
VincentLee
2024/08/16
1100
SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
DeepSeek 作为强大的大模型,提供了优质的基础能力,但在某些特定任务上,直接使用预训练模型可能无法满足需求。本篇文章将介绍 LoRA(Low-Rank Adaptation)、全参数微调 等微调策略,并提供详细的代码示例,帮助开发者高效定制 DeepSeek 以适应特定任务。
Swift社区
2025/02/07
6.2K0
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
DeepSeek 作为强大的大模型,提供了优质的基础能力,但在某些特定任务上,直接使用预训练模型可能无法满足需求。本篇文章将介绍 LoRA(Low-Rank Adaptation)、全参数微调 等微调策略,并提供详细的代码示例,帮助开发者高效定制 DeepSeek 以适应特定任务。
网罗开发
2025/02/18
8990
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
Long-Context下LLM模型架构全面介绍
随着ChatGPT的快速发展,基于Transformer的大型语言模型(LLM)为人工通用智能(AGI)铺平了一条革命性的道路,并已应用于知识库、人机界面和动态代理等不同领域。然而,存在一个普遍的限制:当前许多LLM受资源限制,主要是在较短的文本上进行预训练,使它们对现实世界中常见的较长的上下文提示不太有效。本文对基于Transformer的LLM模型架构的进展进行了全面的介绍。
zenRRan
2023/11/29
2.1K0
Long-Context下LLM模型架构全面介绍
注意力机制进化史:从MHA到MoBA,新一代注意力机制的极限突破!
MLA主要通过优化KV-cache来减少显存占用,从而提升推理性能。直接抛出这个结论可能不太好理解。首先我们来看下,对于生成模型,一个完整的推理阶段是什么样的,推理性能上有什么问题。这部分内容主要来自:
致Great
2025/02/21
5090
注意力机制进化史:从MHA到MoBA,新一代注意力机制的极限突破!
推荐阅读
大模型实操 | LoRA、QLoRA微调大模型实战技巧分享,含常见QA解答!
10.1K0
KDD'22|序列推荐:多行为超图增强的Transformer
1.3K0
​FlattenQuant | 推动低比特量化技术突破,大幅提升大型语言模型的计算效率和部署性能!
5050
LLM 大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、AutoAWQ)
2.2K0
​中科院联合多所高校提出 AdvLoRA | 通过数据增强,攻击检测等对抗模型攻击,提高模型安全性和鲁棒性!
4180
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
9350
KDD'21「华为」数值型特征embedding方法
1.7K0
北航提出 PTQ4SAM | 一种高效的分割任何模型训练后量化框架,实现了无损精度,速度提高了3.9 倍 !
6180
QLoRa:在消费级GPU上微调大型语言模型
1.1K0
解读LoRA
1K0
了解大语言模型的参数高效微调(Parameter-Effcient Fine-Tuning)
1.3K0
LowRA框架实现每参数低于2 Bits LoRA微调,内存降50%,释放受限环境潜力!
1180
港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型
4710
碾压LoRA!Meta & CMU | 提出高效大模型微调方法:GaLore,内存可减少63.3%
1.1K0
LRP-QViT完美而来 | 输出层分配相关性+剪切通道让Swin Transformer量化后居然涨1.5个点
1K0
SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021
1100
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
6.2K0
深度探索 DeepSeek 微调:LoRA 与全参数微调实战指南
8990
Long-Context下LLM模型架构全面介绍
2.1K0
注意力机制进化史:从MHA到MoBA,新一代注意力机制的极限突破!
5090
相关推荐
大模型实操 | LoRA、QLoRA微调大模型实战技巧分享,含常见QA解答!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验