- 博客(153)
- 收藏
- 关注
原创 更新.gitmodules的子模块仓库地址,但是没有生效,需要运行命令
在执行上述命令后,子模块应该会使用新的仓库地址。如果你在其他机器或者团队成员中也使用了这个仓库,确保他们也知道需要同步这些变更。请注意,这些命令将会根据你更新的仓库地址拉取子模块中的内容。如果子模块仓库要求认证(例如需要用户名和密码),你可能需要手动输入这些信息。以上操作将更改提交到你的远程仓库,这样其他使用该仓库的开发者也能通过拉取改动来同步子模块地址。选项表示递归地更新子模块中嵌套的子模块。文件中的URL修改到你的本地配置。如果这是一个新添加的子模块,你需要使用。命令会拉取子模块的内容,并检出到在。
2024-05-28 19:48:59
818
1
原创 flutter中如何定义EventChannel
在Dart代码中,你需要定义一个// 处理从原生平台发送过来的事件event');// 处理监听过程中的错误error// 处理从原生平台发送过来的事件 print('Received event: $ event ');// 处理监听过程中的错误 print('Received error: $ error ');} }你可以在Flutter中的合适位置调用方法来开始监听事件。
2024-05-27 15:15:17
421
原创 Android firebase消息推送集成 FCM消息处理
你可以使用并利用其提供的样式,如InboxStyle等来定制通知的视觉样式。val builder = NotificationCompat.Builder(this, channelId) // 使用创建的通道ID.setSmallIcon(R.drawable.ic_notification) // 设置小图标.setContentTitle("Example Title") // 设置通知标题.setContentText("Example Description") // 设置通知内容。
2024-05-26 21:28:00
1362
原创 android 避免混淆类名和方法名,但是方法内容需要被混淆
要避免在使用 ProGuard 或 R8 进行代码混淆时混淆特定类名和方法名的同时让方法内容被混淆,你需要在 ProGuard 配置文件中使用。请按照你的实际需求调整上面规则中的类名和方法名。此外,你需要确保规则覆盖了所有你希望避免混淆的情况。这些规则允许你指定保留类名和方法名的同时允许方法内部代码被混淆以减小体积和提高安全性。这个完整的类名不会被混淆,所有的公共成员变量和方法名也保持原样,但它们的内部实现可以被混淆。用于保留指定类的成员,但允许类本身的名字被混淆;如果类名也需要不被混淆,可以使用。
2024-05-24 12:28:31
473
原创 Android app如何禁止运行在模拟器中
请注意,没有完美的方法来检测所有模拟器,因为模拟器们的开发者可能会模仿真实设备的属性。由于模拟器可以伪造这些值,因此某些精心设计的模拟器可能会通过这些检测。此外,这些检测方法可能会随着 Android 系统和模拟器技术的更新而需要相应的更新。禁止 Android 应用程序在模拟器上运行涉及到在运行时检测应用是否在模拟器上运行,并根据情况做出相应的处理。还要考虑到,禁止在模拟器上运行可能会影响那些合法使用模拟器进行测试和开发工作的用户。这个方法检查了多个系统属性,这些系统属性是模拟器的常见标识。
2024-04-10 17:50:17
1097
原创 为什么android创建Fragment推荐用newInstance
实例并同时提供参数的一种标准模式。这种模式通常称为静态工厂方法模式,在Android开发中被广泛使用,尤其是用于。应该有一个空的构造函数,以便在配置更改和重建的时候系统能够重新实例化它们。的单例,每次调用都会生成一个新的实例。通常情况下,每次需要显示对话框时,都创建对话框的新实例是最佳实践。(例如,在内存不足时杀死进程后恢复、设备旋转或其他配置更改)时,提供的。这意味着使用过这种模式创建的。需要的参数和创建过程封装在一起,使外部代码不直接与。方法不是因为它是一个单例,而是因为这是创建。参数的官方推荐方式。
2024-04-04 17:22:17
826
原创 flutter中的ListView单元测试
在 Flutter 中,你可能会希望测试ListView内容是否如预期那样显示,是否能够正确滚动,以及是否处理用户输入。以下是测试ListView。
2024-04-03 16:47:00
569
原创 flutter 单测报错 ERROR:D8: Cannot fit requested classes in a single dex file (# methods: 113087 > 65536)
在 Android 中,一个单独的 DEX(Dalvik Executable)文件有方法数量的限制,即每个 DEX 文件不能包含超过 64K(65536)个方法。是 21 或更高,那么你不需要在 Application 类中做任何工作,因为 Android 5.0 及以上版本支持多个 DEX 文件,并且 ART 运行时支持 MultiDex。完成以上步骤后,你应该能够避免方法数超出限制的问题,因为现在应用支持多 DEX 文件了。属性,并确保它指向你的 Application 类,
2024-04-03 16:23:59
538
原创 flutter一个bloc可以对应多个state
在 Flutter 的 Bloc 库中,一个 Bloc 可以对应多个 State,这正是 Bloc 架构的一个关键设计原则。一个 Bloc 过程中,可能会经历多个不同的状态,以此来反映应用的不同部分的变化。总之,Bloc 并不局限于仅与单个状态对应,它可以和一系列的状态有关联,并通过事件触发不同状态的转换。这种能力使得 Bloc 很适合于复杂的应用状态管理,因为它可以详细地捕获和响应用户的交互,以及应用中发生的其他事件,并且能灵活地以状态变化表达出来。函数可以在 Bloc 内部更改和发出新的状态。
2024-04-03 16:22:59
432
原创 flutter 打包成web应用后怎么通过url跳转页面
在 Flutter 中,如果你想要在打包成 Web 应用后通过 URL 跳转页面,你可以利用 Flutter 提供的路由导航系统和 URL 策略。
2024-03-28 19:34:14
705
原创 flutter boost 如何从native跳转到flutter页面
在你的 Flutter 项目中集成 Flutter Boost 插件。在上面的示例中,Flutter Boost 使用 `registerPageBuilders` 方法来注册页面名称和对应的构造函数映射。这里的 `"flutterPage"` 是你希望跳转到的 Flutter 页面的名称,你需要在 Flutter 代码中对它进行注册。在你的 Flutter 代码中,注册你希望从原生跳转到的页面。在你的原生代码中,调用 Flutter Boost 提供的方法来打开一个 Flutter 页面。
2024-03-27 17:32:39
759
1
原创 CodeGeex论文阅读
《CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Evaluations on HumanEval-X》论文地址:https://arxiv.org/pdf/2303.17568.pdf代码地址:https://github.com/THUDM/CodeGeCodeGeeX,是一个具有130亿个参数的多语言模型,用于代码生成,在23种编程语言的8500亿个token上进行了预训练。CodeGeeX的特点(1)CodeGe
2023-07-16 13:17:54
1714
原创 静态词向量预训练模型
然而,传统的矩阵分解方法得到的词 向量不具备良好的几何性质,因此,结合词向量以及矩阵分解的思想,提出Glove ( Global Vectors for Word Representation)模型。词向量层也可以理解为一个查找表 (Lookup Table),获取词量的过程,也就是根据词的素引从查找表中找出对应位置的向量的过程。从词向量学习的角度来看,基于神经网络语言模型的预训练方法存在一个明显的缺点,即当对t时刻词进行预测时,模型只利用了历史词序列作为输人,而损失了与“未来”上下文之间的共现信息。
2023-04-01 21:42:16
1146
1
原创 pytorch 词性标注实战
基于 Transformer 实现词性标注相当于将基于 Transformer 实现的情感分类与基于 LSTM 实现的词性标注相融合。Transformer 层的实现与 Transformer 情感分类基本相同,只有在forward 函数中需要取序列中每个输人对应的隐含层并计算概率,而不是第1个 输入的隐含层(代表整个序列)。此处以 NITK 提供的宾州树库(Penn Treebank)样例数据为例,使用 LSTM 网络进行词性标注。基于循环神经网络的模型可以使用更长的上下文,因此更适合序列标注问题。
2023-03-26 13:56:54
709
原创 pytorch 实现情感分类问题
例如,如果在一个序列前面增加一个标记,则序列中的每个标记位置都变了,也就是它们对应的参数都发生了变化,那么模型预测的结果可能完全不同,这样显然不合理。如果输人为文本,即整数序列(假设已经利用词表映射工具将文本中每个标记映射为了相应的整数),在经过多层感知器之前,需要利用词向量层将输入的整数映射为向量。无论是深度学习还是传统的统计机器学习方法处理自然语言,都需要先将输入的语言符号(通常为标记Token),映射为大于等于0、小于词表大小的整数,该整数也被称作一个标记的索引值或下标。
2023-02-12 22:30:08
2044
3
原创 pytorch 梯度下降
首先,输出网络的参数值,包括两个线性映射层的权重和偏置项的值,然后,输出网络对训练数据的预测结果,[1, 0, 1, 0],其与原训练数据相同,说明该组参数能够正确地处理异或问题(即线性不可分问题)
2023-02-12 15:15:14
145
原创 pytorch 实现神经网络
在PyTorch 中构建一个自定义神经网络模型非常简单,就是从torch.nn 中的Module 类派生一个子类,并实现构造函数和 forward 函数。其中,构造函数定义了模型所需的成员对象,如构成该模型的各层,并对其中的参数进行初始化等。而forward 函数用来实现该模块的前向过程,即对输人进行逐层的处理,从而得到最终的输出结果。PyTorch 提供的基本张量存储及运算功能,就可以实现多种神经网络模型,但是这种实现方式不但难度高,而且容易出错。
2023-02-12 11:12:01
345
原创 Android ABI
不同的 Android 设备使用不同的 CPU,而不同的 CPU 支持不同的指令集。CPU 与指令集的每种组合都有专属的应用二进制接口 (Application Binary Interface,ABI)常见的cpu架构现在在应用市场发布app必须要支持64位架构,并且必须有64位so文件。
2022-10-23 21:21:07
535
原创 梯度下降法
1.什么是梯度下降法机器学习领域的一个重要的方法,叫做梯度下降法。那么梯度下降法和我们之前讲的knn算法或者线性回归算法不同。梯度下降法本身不是一个机器学习的算法,他既不是在做监督学习,也不是在做非监督学习,他不能用于解决回归问题或者分类问题,梯度下降法是一种基于搜索的最优化的方法。它虽然也是人工智能领域的一个非常重要的方法,但是它的作用是用于优化一个目标函数。那么对于我们要最小化一个损失函数的话,相应的使用的就是梯度下降法。而如果我们要最大化一个效用函数的话,相应的就应该使用梯度上升法。线性回归算法,
2022-05-22 22:05:18
783
原创 线性回归法
1.简单线性回归线性回归法跟我们在上一章所介绍的knn算法不同,knn算法主要用于解决分类问题,而线性回归算法则主要用于解决回归问题,对于现象回归算法来说,它也是思想非常简单,而且实现起来会非常容易,这里的实现容易,和他背后具有非常强的数学性质是相关的。那么这个相应的数学推导会稍微复杂一点,但也并不是特别难,但是由于有这种数学的支撑,使得我们的计算机的实现是很容易的。与此同时,线性回归法虽然非常简单,但是我们后面就会看到它是许多更加强大的非线性模型的基础,无论是多项式回归,逻辑回归甚至是svm,从某种程度
2022-05-22 16:28:53
1818
转载 使用飞桨重写波士顿房价预测任务
使用飞桨实现波士顿房价预测任务本教程中的案例覆盖计算机视觉、自然语言处理和推荐系统等主流应用场景,使用飞桨实现这些案例的流程基本一致,如图1所示。图1:使用飞桨框架构建神经网络过程在之前的章节中,我们学习了使用Python和NumPy实现波士顿房价预测任务的方法,本章我们将尝试使用飞桨重写房价预测任务,体会二者的异同。在数据处理之前,需要先加载飞桨框架的相关类库。In [1]#加载飞桨、NumPy和相关类库import paddlefrom paddle.nn...
2022-05-22 12:48:41
843
原创 NumPy 入门介绍
NumPy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。NumPy具有如下功能:ndarray数组:一个具有矢量算术运算和复杂广播能力的多维数组,具有快速且节省空间的特点; 对整组数据进行快速运算的标准数学函数(无需编写循环); 线性代数、随机数生成以及傅里叶变换功能; 读写磁盘数据、操作内存映射文件。本质上
2022-05-22 12:48:24
500
转载 波士顿房价预测 使用Python语言和Numpy库来构建神经网络模
波士顿房价预测任务上一节我们初步认识了神经网络的基本概念(如神经元、多层连接、前向计算、计算图)和模型结构三要素(模型假设、评价函数和优化算法)。本节将以“波士顿房价预测”任务为例,向读者介绍使用Python语言和Numpy库来构建神经网络模型的思考过程和操作方法。波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的“Hello World”。和大家对房价的普遍认知相同,波士顿地区的房价受诸多因素影响。该数据集统计了13种可能影响房价的因素和该类型房屋的均价,期望构建一个基于13个因素进行..
2022-05-08 16:37:57
5266
1
原创 kotlin进阶
八、Lambda 表达式高阶函数高阶函数是将函数作为参数或返回函数的函数 suspend fun <T : BaseRpcNetworkResult> executeRpc(block: suspend () -> BaseRpcNetworkResult): RpcResponse<T> { runCatching { block.invoke() }.onSuccess { data: B..
2022-05-06 15:05:10
1168
原创 最基础的分类算法-k近邻算法 kNN
01 kNN 基础import numpy as npimport matplotlib.pyplot as pltkNN 基础概念k近邻算法,全称是 K Nearest Neighbors,knn算法是一个非常适合大家入门机器学习的算法。这是因为knn算法他的思想极度简单,不仅如此,knn这么一个思想简单的算法,它的效果也出奇的好。 该方法的思路是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。 给定一个训练数据集,对新
2022-05-04 15:23:24
2009
原创 kotlin基础
kotlin 中的高阶函数高阶函数即指:将函数用作一个函数的参数或者返回值的函数。//block1 无参数无返回值函数类型 val block1: () -> Unit // block2 无参数返回值为 String 的函数类型 val block2: () -> String // block2 有一个 Int 类型的参数无返回值的函数类型 val block3: (Int) -> Unit // block4 有2个参数返回值
2022-04-26 23:13:41
2969
原创 六、NLP聊天机器人原理(seq2seq模型)
一、seq2seq模型1.概念(1)seq2seq是一个Encoder-Decoder结构的网络,它的输入是一个序列,输出也是一个序列。(2)Encoder中将一个可变长度的信号序列变为固定长度的向量表达,Decoder将这个固定长度的向量变成可变长度的目标的信号序列。(3)这个结构最重要的地方在于输入序列和输出序列的长度是可变的。(4)可以用于翻译,聊天机器人、句法分析、文本摘要等。2.encoder过程(1)取得输入的文本,进行embedding,生成向量(2)传入到LST
2022-01-17 15:49:53
3809
1
原创 五、NLP聊天语料处理
一、环境搭建sys (python系统库)pickle(将特有的类型与python的数据类型进行转换的库)re (正则表达式库)tqdm(可扩展的进度条)activate nlp,pip install tqdm --upgrade二、聊天机器人语料处理流程介绍1、语料收集:聊天记录、电影对话、台词片段2、语料清洗:清洗的内容:多余的空格,不正规的符号,多余的字符、英文清洗的方法:正则化,切分,好坏语句判断3、句子向量的编码化:原始的文本不能直接训练..
2021-12-22 22:54:21
3505
1
原创 四、NLP中的语言模型
一、语料的获取与处理1、什么是语料库?语料:即语言材料。语料是语言学研究的内容。语料是构成语料库的基本单元。语料库:存放的是在语言实际使用中真实出现过的语言材料,是以计算机为载体承载语言知识的基础资源。真实语料需要经过加工(分析、处理),才能成为有用的资源。2、语料库的种类异质的:语料有多种分类同质的:语料同类系统的:如聊天机器人专用的:如保险推销聊天机器人3、语料的获取途径1、开放性语料数据集:(1)中科院自动化所的中英文新闻语料库(2)搜狗的中文新闻语料库(3)人
2021-12-19 21:43:30
1270
原创 三、NLP基础 (朴素贝叶斯、隐马尔可夫)
一、什么是NLP1、自然语言处理(英语:natural language processing,缩写作 NLP )此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。这里的自然语言,一般包括两种。一种是指我们这说话的声音,也就说语音,另外一种是指文字。比如说我们写一篇文章,或者说跟客服进行聊天,那它属于文字。实际上就是指让电脑来理解人类的语言,因为无论是用文字也好还是用语音也好,它都属于人类的语言。2、自然语言处理的主要范畴1、文本分析,给你一段文章你要分析出相关
2021-12-14 16:21:40
4428
原创 二、循环神经网络(RNN与LSTM)
一、NLP基础1、常用的神经网络模型在做深度学习或者是人工智能相关的任务中。一般来讲,我们常用的网络模型有三种,第一种卷积神经网络。实际上也是前馈神经网络的一种,它主要包括这个点。地上。那么一般来讲呢,我们是拿这个准地心的网络来做一些跟图像相关的一些事情,比如说我们来做一个图像上市,比如说有一个说给一张老张片。1.1 卷积神经网络(Convolutional Neural Network,CNN) 是一种前馈神经网络, 它包括卷积层(convolutional layer) 和池化层(poo
2021-12-08 23:03:21
16222
原创 一、TensorFlow基础
1、TensorFlow框架介绍TensorFlow是什么◆谷歌基于DistBelief进行研发的第二代人工智能学习系统◆用于语音识别或图像识别等多项机器学习和深度学习领域◆将复杂的数据结构传输至人工智能神经网中进行分析和处理·支持CNN、RNN和LSTM算法,是目前在lmage,Speech和NLP最流行的深度神经网络模型2、TensorFlow系统框架从图中可以看到有三大部分组成,第一部分是一个前端框架,Front End。第二部分,就是中间的这个capi。第三部分是一个后.
2021-12-05 14:48:20
4488
原创 Android性能分析与优化学习(六)线程优化
一 、Android线程调度原理剖析1、线程调度原理任意时刻,只有一个线程占用CPU,处于运行状态多线程并发:轮流获取cpu使用权JVM负责线程调度:按照特定机制分配CPU使用权线程调度模型分时调度模型:轮流获取、均匀分配cpu时间抢占式调度模型:优先级高的获取,JVM采用2、Android线程调度(1)nice值Process中定义值越小,优先级越高默认是Process.THREAD_PRIORITY_DEFAULT,0问题:只有nice值并不足够,例如app又一个前台的U
2021-08-10 10:31:13
519
原创 Android性能分析与优化学习(五)卡顿优化
一 、卡顿介绍及优化工具选择对用户来说:很多性能问题不易被发现,但是卡顿很容易被直观感受对开发者来说:卡顿问题难以定位卡顿问题难在哪里:产生的原因错综复杂:代码、内存、绘制、IO?不易复现:与用户当时场景相关1、CPU Profiler图形的形式展示执行时间、调用栈等,信息全面,包含所有线程运行时开销严重,整体都会变慢使用方式Debug.startMethodTracing(“文件名”);//使用Debug.stopMethodTracing();//结束生成文件在sd卡:Andr
2021-08-10 09:52:43
505
原创 ARouter原理
一、编译过程1、注解我们在要跳转的Activity上面添加了@Route注解,ARouter 的自动注册是利用了编译期自定义注解的处理来完成的,我们看一下这个注解的定义:@Target({ElementType.TYPE})@Retention(RetentionPolicy.CLASS)public @interface Route{ String path(); String group() default ""; String name() default "";
2021-08-09 14:37:09
427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人