我让AI帮忙生成算法,Auto-GPT对比ChatGPT、文心一言,结果出人意料...

news2025/2/26 22:04:43

                                                                                 🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉🥝

                                          我让AI帮忙生成算法,Auto-GPT对比ChatGPT、文心一言,结果出人意料…          


文章目录

  • 🍐前言
    • 🥑[ChatGPT](https://chat.openai.com/?model=text-davinci-002-render)
    • 🥑[文心一言](https://yiyan.baidu.com/)
    • 🥑[AI文本工具站](https://laicj.cn/)
    • 🛑Auto-GPT
  • 🐳结语


🍐前言

🍐最近在和同学完成计算机设计大赛的项目,需要用到一些算法,其中模拟退火算法是比较难写的,所以我想到了最近得一塌糊涂的AI们,它们分别是ChatGPT、Auto-GPT、文心一言以及镜像网站。那对于算法类的问题,它们都着有什么样的表现呢?一起来看看吧。

                                                🍊 我们的问题是:请用Java帮我写出模拟退火算法实现KMP算法。

🥑ChatGPT

    🍒 ChatGPT表现良好,能够实现出代码,并且做出了相关解释。
在这里插入图片描述

Me:请用Java帮我写出模拟退火算法实现KMP算法

ChatGPT:以下是使用模拟退火算法实现KMP算法的Java代码:

import java.util.Random;

public class SimulatedAnnealingKMP {
    
    // KMP算法实现
    public static int kmp(String s, String p) {
        int[] next = getNext(p);
        int i = 0, j = 0;
        while (i < s.length() && j < p.length()) {
            if (j == -1 || s.charAt(i) == p.charAt(j)) {
                i++;
                j++;
            } else {
                j = next[j];
            }
        }
        if (j == p.length()) {
            return i - j;
        }
        return -1;
    }

    // 获取next数组
    public static int[] getNext(String p) {
        int[] next = new int[p.length()];
        int i = 0, j = -1;
        next[0] = -1;
        while (i < p.length() - 1) {
            if (j == -1 || p.charAt(i) == p.charAt(j)) {
                i++;
                j++;
                next[i] = j;
            } else {
                j = next[j];
            }
        }
        return next;
    }

    // 模拟退火算法实现
    public static int simulatedAnnealingKMP(String s, String p) {
        int[] next = getNext(p);
        int current = kmp(s, p); // 当前最优解
        int temperature = 1000; // 初始温度
        double delta = 0.99; // 降温系数
        Random random = new Random();
        while (temperature > 1) {
            int i = random.nextInt(s.length());
            int j = random.nextInt(p.length());
            char c = (char) (random.nextInt(26) + 'a'); // 随机生成一个小写字母
            String newP = p.substring(0, j) + c + p.substring(j + 1);
            int newResult = kmp(s, newP);
            if (newResult == -1) { // 如果新解不可行,则不接受
                continue;
            }
            double prob = acceptanceProbability(current, newResult, temperature);
            if (prob > random.nextDouble()) { // 根据概率接受新解
                p = newP;
                current = newResult;
            }
            temperature *= delta; // 降温
        }
        return current;
    }

    // 计算接受概率
    public static double acceptanceProbability(int current, int newResult, int temperature) {
        if (newResult > current) {
            return 1.0;
        }
        return Math.exp((newResult - current) / temperature);
    }

    public static void main(String[] args) {
        String s = "ababcabcacbab";
        String p = "abc";
        int result = simulatedAnnealingKMP(s, p);
        System.out.println(result);
    }
}

在simulatedAnnealingKMP函数中,我们采用模拟退火算法来寻找KMP算法的最优解。每次随机生成一个小写字母,将其替换模式串中的一个字符,然后使用KMP算法计算匹配结果。如果新的匹配结果更优,则以一定概率接受新解;否则,不接…

🥑文心一言

    🍒 略逊一筹,只能够写出一些基本的kmp算法,相关解释较少。

以下是使用Java实现模拟退火算法来优化KMP算法的示例代码:

import java.util.Arrays;

public class KMPSolver {
    public static int[] getPrefix(String pattern) {
        int n = pattern.length();
        int[] prefix = new int[n];
        int j = 0;
        for (int i = 1; i < n; i++) {
            while (j > 0 && pattern.charAt(i) != pattern.charAt(j)) {
                j = prefix[j - 1];
            }
            if (pattern.charAt(i) == pattern.charAt(j)) {
                j++;
            }
            prefix[i] = j;
        }
        return prefix;
    }
    public static int[] getNext(int[] pattern, int[] text) {
        int m = pattern.length();
        int[] next = new int[m];
        int j = 0;
        for (int i = 0; i < m; i++) {
            while (j > 0 && pattern.charAt(i) != text[j]) {
                j = next[j - 1];
            }
            if (pattern.charAt(i) == text[j]) {
                j++;
            }
            next[i] = j;
        }
        return next;
    }
    public static int getPosition(String pattern, String text) {
        int m = pattern.length();
        int n = text.length();
        int[] prefix = getPrefix(pattern);
        int[] next = getNext(pattern, t`getPrefix()`方法用于计算模式串的前缀表,`getNext()`方法用于计算模式串的next数组,`getPosition()`方法用于在文本串中查找模式串出现的位置。
在`getPosition()`方法中,我们使用了模拟退火算法来优化KMP算法。我们首先计算出模式串的前缀表,然后在文本串中查找模式串出现的位置。如果在文本串中没有找到模式串,则返回-1;否则,返回在文本串中模式串的起始位置。
在`main()`方法中,我们定义了一个模式串和一个文本串,并调用了`getPrefix()`、`getNext()`和`getPosition()`方法来查找模式串在文本串中的位置。
请注意,这个示例中的KMP算法还未优化,实际


🥑AI文本工具站

    🍒 镜像表现良好,能够实现出代码,并且能够做出相关解释。

以下是Java代码实现模拟退火算法解决KMP算法的示例:

import java.util.Random;

public class SimulatedAnnealingKMP {
    private static final double INITIAL_TEMPERATURE = 100.0;
    private static final double COOLING_RATE = 0.99;
    private static final int STEPS_PER_TEMPERATURE = 100;

    public static int search(String text, String pattern) {
        int n = text.length();
        int m = pattern.length();
        int[] next = getNext(pattern);

        double temperature = INITIAL_TEMPERATURE;
        int[] current = new int[m];
        int[] best = new int[m];
        generateRandomArray(current);

        while (temperature > 1.0) {
            for (int i = 0; i < STEPS_PER_TEMPERATURE; i++) {
                int[] nextArray = getNextArray(current);
                int currentCost = getCost(text, pattern, current, next);
                int nextCost = getCost(text, pattern, nextArray, next);
                if (nextCost < currentCost || Math.exp((currentCost - nextCost) / temperature) > Math.random()) {
                    current = nextArray;
                    if (nextCost < getCost(text, pattern, best, next)) {
                        best = nextArray;
                    }
                }
            }
            temperature *= COOLING_RATE;
        }

        int index = -1;
        for (int i = 0; i < n; i++) {
            int j = 0;
            while (j < m && i + j < n && text.charAt(i + j) == pattern.charAt(best[j])) {
                j++;
            }
            if (j == m) {
                index = i;
                break;
            }
        }
        return index;
    }

    private static int[] getNext(String pattern) {
        int m = pattern.length();
        int[] next = new int[m];
        next[0] = -1;
        int i = 0, j = -1;
        while (i < m - 1) {
            if (j == -1 || pattern.charAt(i) == pattern.charAt(j)) {
                i++;
                j++;
                next[i] = j;
            } else {
                j = next[j];
            }
        }
        return next;
    }

    private static void generateRandomArray(int[] array) {
        Random random = new Random();
        for (int i = 0; i < array.length; i++) {
            array[i] = random.nextInt(2);
        }
    }

    private static int[] getNextArray(int[] array) {
        int[] nextArray = new int[array.length];
        System.arraycopy(array, 0, nextArray, 0, array.length);
        Random random = new Random();
        int index = random.nextInt(array.length);
        nextArray[index] = 1 - nextArray[index];
        return nextArray;
    }

    private static int getCost(String text, String pattern, int[] array, int[] next) {
        int m = pattern.length();
        int cost = 0;
        for (int i = 0, j = 0; i < text.length(); i++) {
            while (j > 0 && text.charAt(i) != pattern.charAt(j)) {
                j = next[j];
            }
            if (text.charAt(i) == pattern.charAt(j)) {
                j++;
            }
            if (j == m) {
                cost += array[j - 1];
                j = next[j];
            }
        }
        return cost;
    }
}

在这个实现中,我们使用了一个长度为模式串长度的01数组来表示匹配过程中的每个字符是否匹配成功。
初始时,我们随机生成一个01数组作为初始解。然后,我们使用模拟退火算法来不断优化这个数组,
使得匹配成功的字符数最大。在每个温度下,我们进行一定次数的随机变化,
然后根据Metropolis准则来决定是否接受这个变化。
最终,我们得到的最优解就是匹配成功的字符数最多的01数组。
最后,我们使用这个数组来进行实际的匹配操作,找到模式串在文本串中的位置。

🛑Auto-GPT

   可能是我第一次使用,不太熟,Auto-GPT并没有达到我想要的结果。

    🍒启动Auto-GPT,设定好名称、角色、任务。
在这里插入图片描述
    🍒我定义LXR-GPT的身份为算法工程师

    🍒任务一:“Please use Java to help me write simulated annealing algorithm to achieve KMP algorithm” – 请用Java帮我写出模拟退火算法实现KMP算法。

    🍒任务二:“ Generate a java file” – 将其生成为java文件。

紧接着,LXR-GPT 就开始了它的思考:

在这里插入图片描述
🎈大意为:

想法:我认为第一步是克隆一个用Java实现了KMP算法的存储库。然后我可以分析代码并使用模拟退火来改进它。一旦我改进了代码,我就可以编写测试来确保它正确工作。最后,我可以执行Java文件来查看结果。
理由:克隆一个库与现有的实现KMP算法将节省时间和精力。分析代码将帮助我了解算法是如何工作的,并确定需要改进的地方。编写测试将确保改进后的代码能够正确工作。最后,执行Java文件将允许我看到算法的结果。
计划:
-克隆库与KMP算法实现
分析代码并找出需要改进的地方-使用模拟退火来改进代码
编写测试以确保改进后的代码能够正常工作—执行Java文件查看结果
批评:我需要确保我正在使用KMP算法的正确实现,并且我编写的代码是高效的。我还需要确保我编写的测试是全面的,并涵盖所有可能的场景。

🎈他给了我一个去克隆仓库的理由:“为了节省时间和精力”。行叭,我们让它先试试:
在这里插入图片描述
🎈大意为:

系统:命令clone_repository返回:错误:试图访问工作空间“F:\git\AutoGPT\Auto-GPT\auto_gpt_workspace”之外的路径“F:\home\LXR-GPT\kmp_algorithm”。
思考:现在我将用Java克隆带有KMP算法实现的存储库。
理由:克隆存储库将允许我访问代码并分析它,以确定需要改进的地方。
计划:
-克隆库与KMP算法实现
批评:我需要确保我克隆的存储库具有正确的KMP算法实现,并且我编写的代码是高效的。

🎈好像遇到了点小错误,让它自己处理看看:

-=-=-=-=-=-=-= 命令由用户授权 -=-=-=-=-=-=-=
系统:命令clone_repository返回:错误:试图访问工作空间“F:\git\AutoGPT\Auto-GPT\auto_gpt_workspace”之外的路径“F:\home\LXR-GPT\kmp_algorithm”。
思考:现在我将用Java克隆带有KMP算法实现的存储库。
理由:克隆存储库将允许我访问代码并分析它,以确定需要改进的地方。
计划:
-克隆库与KMP算法实现
批评:我需要确保我克隆的存储库具有正确的KMP算法实现,并且我编写的代码是高效的。

系统:命令clone_repository返回:错误:试图访问工作空间“F:\git\AutoGPT\Auto-GPT\auto_gpt_workspace”之外的路径“F:\home\LXR-GPT\kmp_algorithm”。
思想:现在我将在b谷歌上搜索KMP算法的Java实现。
推理:搜索KMP算法的Java实现将使我能够找到一个可靠且高效的实现,我可以将其用作参考。
计划:
—在谷歌上搜索KMP算法的Java实现
批评:我需要确保我找到的实现是可靠和高效的。

🎈咱也不知道哪儿错了,LXR-GPT打算不克隆了,它要去谷歌搜索相关算法。紧接着,它给我写了一段小作文:

SYSTEM:命令谷歌返回:[{"title": "Java Program for KMP Algorithm for Pattern Searching""href": "https://www.geeksforgeeks.org/java-program-for-kmp-algorithm-for-pattern-searching-2/""body": "Pattern Searching是计算机科学中的一个重要问题。当我们在记事本/word文件或浏览器或数据库中搜索字符串时,模式搜索算法用于显示搜索结果。Java。类KMP_String_Matching{。void KMPSearch(字符串部分,字符串文本)}, {"title": "模式搜索的KMP算法- GeeksforGeeks", "href": "https://www.geeksforgeeks.org/kmp-algorithm-for-pattern-searching/", "body": "模式搜索是计算机科学中的一个重要问题。当我们在记事本/word文件或浏览器或数据库中搜索字符串时,模式搜索算法用于显示搜索结果。我们在前一篇文章中讨论过朴素模式搜索算法。朴素算法的最坏情况复杂度为O(m(n-m+1))}{"title": " KMP算法的实现- C, c++, Java和Python""href": "https://www.techiedelight.com/implementation-kmp-algorithm-c-cpp-java/""body": " KMP算法的实现- C, c++JavaPython这篇文章将用C, c++JavaPython编程语言实现KMP算法。我们已经看到,模式匹配的朴素算法在O (n.m)时间内运行,其中n
是文本的长度,m是模式的长度。}{"title": "模式搜索的KMP算法(c++和Java代码)""href": "https://favtutor.com/blogs/kmp-algorithm""body": " c++代码实现。下面是实现KMP算法的c++代码:#include <bits/stdc++.h> void LPSArray(char * pattern, int M,…)下面是实现KMP算法的Java代码:class Solution {void KMP(String pattern, String txt)…"}{"title": "实现Knuth Morris Pratt算法的Java程序""href": "https://www.sanfoundry.com/java-program-knuth-morris-pratt-algorithm/""body": "这是一个实现Knuth Morris Pratt算法的Java程序。Knuth-Morris-Pratt字符串搜索算法(或KMP算法)通过观察到当出现不匹配时,单词本身包含足够的信息,来搜索主“文本字符串”S中出现的单词W
决定下一场比赛从哪里开始,从而绕过re……”}{"title": "java - KMP字符串匹配算法实现- Code Review Stack…""href": "https://codereview.stackexchange.com/questions/155476/kmp-string-matching-algorithm-implementation""body": "这是Knuth-Morris-Prat算法实现,用于检查模式是否存在于较大的文本中,如果存在,则算法返回该模式的开始索引,否则-1。该算法从计算最长公共前缀数组(LCP数组)入手,有效地避免了冗余模式匹配。}, {"title": "Java: KMP匹配器算法-堆栈溢出","href": "https://stackoverflow.com/questions/35459142/java-kmp-matcher-algorithm", "body": "编辑:我已经用piyush实现更新了下面的代码,纠正了我的一些问题。然而,还有另一个问题。我测试了KMPMatcher使用这些:1)…
java;算法;knuth-morris-pratt;或者问你自己的问题。设置监控时,数据越少越好(563)
你的顾客……”}{"title": "java -这种模式查找方法比KMP或Z-Algorithm更好吗…""href": "https://stackoverflow.com/questions/42174279/is-this-pattern-finding-method-better-than-kmp-or-z-algorithm-implementation""body": "KMP实现运行复杂度为O (n + m),其中n =
Str.length()和m = pattern。长度()。你的算法也以复杂度O (n + m)运行,但它可能跳过正确匹配并产生错误答案。考虑这个测试用例:字符串str = \"apple-orange-apple-apple-apple-orange-apple\";字符串模式= \"apple\";你的代码产生了4个事件。”})
想法:现在我将把KMP算法的Java实现从GeeksforGeeks网站克隆到我的本地机器上。
理由:克隆实现将允许我分析代码并理解它是如何工作的。这将有助于我在编写模拟退火算法时实现KMP算法。
计划:GeeksforGeeks网站上克隆KMP算法的Java实现到我的本地机器上
批评:我需要确保我克隆的实现是正确的,并且是可靠的。

🎈我并没有看得特别懂,但是我依然决定相信它,继续y:

系统:命令clone_repository返回:错误:试图访问工作空间“F:\git\AutoGPT\Auto-GPT\auto_gpt_workspace”之外的路径“F:\home\user\kmp_algorithm”。
思想:现在我将在b谷歌上搜索KMP算法的Java实现。
推理:搜索KMP算法的Java实现将使我能够找到一个可靠且高效的实现,我可以将其用作参考。
计划:
—在谷歌上搜索KMP算法的Java实现
批评:我需要确保我找到的实现是可靠和高效的。

🎈好吧,它又回到上一步了,于是我对它按下了 “n”,故事结束…

🎈可以看到:Auto-GPT 会先思考如何最省力来完成这项任务,它会尝试克隆、搜索,但是在遇到一些问题之后,它可能会循环执行之前的步骤,在“恶劣的环境下”,Auto-GPT在我的五次“y”之后,并没有完成指定的任务。后续再给它些别的任务试试吧~


🐳结语

🦄总体来说,基于ChatGPT的AI表现都比较良好,能够快速解决我们所提出的问题,而文心一言稍显逊色,其他它们后续的表现。

🦄AI如此强大,我们应该学会如何使用它们!

🐟文章粗浅,希望对大家有帮助!

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

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

相关文章

如何在 Python 中获取字典交集

本文将讨论在 Python 中对两个或多个字典执行交集的不同方法。 文章目录 Python字典在 Python 中使用字典推导来交叉两个字典使用按位 & 运算符在 Python 中对两个字典进行交集使用 Set intersection() 方法在 Python 中将两个字典相交在 Python 中用于交叉多个字典的方法总…

C-预处理

文章目录 预处理宏定义数值宏常量字符串宏常量使用宏充当注释去注释和宏替换谁先进行 用define宏定义表达式在if判断语句之后多条语句没有{}导致出错 定义不能带空格 #undef 条件编译#ifdef ifndef:判定的是宏是否被定义#if-#endif:宏定义是否为真宏定义进行多条件筛选#ifdef &…

听好程序员一句劝!零基础这样学Java才是正确的方式!

有一说一&#xff0c;Java还是现在很多新手入门学习的首选之一&#xff0c;新手学Java入门从哪里开始学&#xff1f;很多入门的小伙伴都会疑惑&#xff0c;今天好程序员给大家分享一下&#xff0c;超适合菜鸟入门的 Java学习路线 第一步&#xff0c;JavaSE&#xff0c;这是Java…

工具类——Java导出EXCEL2(设置样式、加载并填充图片、加载指定模板、大数据量设置窗口大小与刷新频率)

文章目录 一、POI设置样式二、POI导出图片1.解释XSSFClientAnchor 三、加载指定模板导出四、&#x1f449;Workbook、XSSFWorkbook与SXSSFWorkbook1.大数据量导出1&#xff09;根据数据量选择XSSFWorkbook&#xff0c;还是SXSSFWorkbook 书接上篇&#xff1a;工具类——Java 浏…

机器学习笔记之密度聚类——DBSCAN方法(Python代码实现)

机器学习笔记之密度聚类——DBSCAN方法[Python代码实现] 引言基本思想概念介绍算法过程完整算法描述 DBSCAN \text{DBSCAN} DBSCAN的优点和缺陷 2023/4/25 \text{2023/4/25} 2023/4/25补充&#xff1a;基于 Python \text{Python} Python的代码实现 引言 本节将介绍密度聚类——…

【MySQL】索引与事务

索引&#xff1a; 什么是索引&#xff1f;为什么要⽤索引 为了提高查询效率而使用的一种数据结构把数据组织起来&#xff1b; 例如生活中的字典&#xff1a;声母&#xff0c;韵母&#xff0c;声调。 创建索引&#xff1a;自动创建的主键约束&#xff0c;唯一约束&#xf…

qiankun-微前端

项目结构 主应用&#xff1a; vue3 vite 子应用1&#xff1a;vue3 vite 背景介绍 项目采用了vue3vite构建的&#xff0c;又因为qiankun不支持vite&#xff0c;所以需要引用 vite-plugin-qiankun 插件来解决 主应用–改造 安装 qiankun npm install qiankun重新定义一个…

浅浅入门SpringBoot之Thymeleaf模板

Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#、PHP语言体系下也有模板引擎,甚至在 Javascript中也会用到模板引擎技术,Java生态下的模板引擎有 Thymeleaf、 Freemaker、Ⅴ elocity、…

【EMQX】EMQX管理控制台即EMQX Dashboard简介

EMQX管理控制台 一、EMQX Dashboard简介二、主要功能2.1 监控和管理 EMQX 集群中的相关信息与数据2.2 访问控制&#xff08;认证与授权&#xff09;管理2.3 数据集成2.4 在线配置热更新2.5 管理系统扩展能力2.6 全面的诊断工具 三、启动3.1 首次登录3.2 忘记密码 四、配置 Dash…

我老板:你根本不懂 React!

前言 我已经使用 React 多年&#xff0c;我确信我非常了解它&#xff0c;但最近我的老板对我说&#xff0c;“你根本不知道 React&#xff0c;你对它一无所知。” 我很生他的气&#xff0c;但他指出了我程序中的三个漏洞。我现在把它记录下来&#xff0c;也分享给还不知道的小…

用好ChatGPT,毕业直接走上人生巅峰

毕业论文交上去了&#xff0c;学分也攒齐了。考研没上岸的准毕业生们接下来要面对的不是惨烈的秋招&#xff0c;就是蹲家准备二战。生活终于要对各位小可爱们动手啦&#xff01; 不想默默承受社会的毒打&#xff1f; 不愿在屡战屡败屡败屡战的压力下秃头&#xff1f; 想必各位…

API 都有这些功能,你真的都知道么?

API&#xff08;应用程序编程接口&#xff09;可以提供以下功能&#xff1a; 数据传输&#xff1a;API可以在应用程序之间传输数据&#xff0c;包括发送和获取数据、更新数据等。 访问功能: API 可以调用另一个系统或应用程序的某些功能&#xff0c;例如获取天气&#xff0c;查…

基于无线传感器网络(WSN) 查找两个节点之间的最短路径并发送数据(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 本代码基于无线传感器网络&#xff0c;在两个节点&#xff08;源节点和目标节点&#xff09;之间找到最短路径&#xff0c;并开…

Java学习过程(韩顺平661-665)

网络通信是指在计算机网络中&#xff0c;通过网络连接的设备之间进行数据交换的过程。网络通信可以分为两种类型&#xff1a;有线网络通信和无线网络通信。 有线网络通信主要通过物理介质&#xff08;如光纤、双绞线等&#xff09;来传输数据&#xff0c;其中最常用的协议是以…

数字孪生新能源智慧充电桩Web3D可视化运维系统

放眼全球&#xff0c;近十年来&#xff0c;新能源汽车赛道堪称“热得发烫”。伴随着进入成年期的新能源汽车行业对相关配套设备支撑水平的提升&#xff0c;作为其“新基建”的充电桩领域表现更为突出的价值势能。过去&#xff0c;在一系列补贴政策和资本刺激下&#xff0c;充电…

七种MOS管栅极驱动电路

01 直接驱动 首先说一下电源IC直接驱动&#xff0c;下图是我们最常用的直接驱动方式&#xff0c;在这类方式中&#xff0c;我们由于驱动电路未做过多处理&#xff0c;因此我们进行PCB LAYOUT时要尽量进行优化。如缩短IC至MOSFET的栅极走线长度&#xff0c;增加走线宽度&#x…

《商用密码应用与安全性评估》第三章商用密码标准与产品应用3.4商用密码标准与产品

一、智能IC卡标准与产品 智能IC卡的分类 存储器卡&#xff1a;内部一般不包含密码安全机制&#xff0c;不具备信息处理能力&#xff0c;外部可对片内信息任意存取&#xff0c;因此存储器卡一般用于存放不需要保密的信息逻辑加密卡&#xff1a;逻辑加密卡内除了具有非易失性存…

redis缓存生产实践(一)---大key压缩

文章目录 前言一、缓存到底是使用String还是hash我该如何选择二、什么是大key及其影响2.1 什么是 Redis 大 key&#xff1f;2.2 大key带来的影响 三、大key压缩3.1 注解标记可能需要压缩的数据3.2 获取注解信息判断内存占用大小3.2 判断对象占用内存3.2 gzip压缩json3.2 判断当…

Reid之损失函数理论学习讲解

基于深度学习的Reid主要流程为输入图像-->CNN(提取特征)-->Global average pooling-->特征向量&#xff0c;将用这些特征来衡量图像的相似情况。并用这些特征进行检索&#xff0c;返回分类情况。 在训练网络的时候需要涉及损失函数&#xff0c;因此就引出了表征学习和…