KIMI爆了!对比文心一言和通义千问它到底有多强?

原文:赵侠客

前言

最近国产大模型KIMI爆了大部分人应该都知道了,从我个人的感受来看这次KIMI爆了我不是从技术领域接触到的,而是从各种金融领域接触到的。目前国内大模型可以说是百模大战,前几年新能源大战,今年资本割完韭菜后留给我们的是一家家倒闭或者即将要倒闭的车企,今年有一句话听了让人非常的无奈:"如果前几年你买了房子,又买了车子,你不仅要担心你的房子什么时候会爆雷还要担心你的车子什么时候会爆雷"。过几年大模型爆雷注定是不可避免不的,想想当年火爆的OFO到现在200多块钱的押金还没退给我。每次风口过后资本割完韭菜留给我们的都是一地鸡毛,所以我们一定要有自己的判断力,真正国货之光我们要去支持,那些套壳只为玩资本游戏的产品我们千万不要跟风,不要理会它就好了。关于KIMI在资本市场已经火了,甚至还产生了KIMI概念股。那么KIMI到底怎么样?听别人说1000遍不如自己实际用一下,而且国产是开箱即用,比国外的使用门槛低多了。这次我们也不和外国的对比,也不和收费的对比,我们就和免费的文心一言和通义千问对比。

在此申明:本文6道题目为本人原创,在本文发表前网上是没有的,测试结果只能代表这三家大模型在这六道题目上的好坏,不能全面代表这三家大模型整体的优劣程度。

问题一:我今天陪女朋友去杭州西湖游玩应该穿什么衣服

KIMI

添加图片注释,不超过 140 字(可选)

文心一言

添加图片注释,不超过 140 字(可选)

通义千问

添加图片注释,不超过 140 字(可选)

对比

添加图片注释,不超过 140 字(可选)

今天西湖边实际天气实拍

首先我们看一下杭州西湖今天的天气,温度是18-28度,多云,15点10%概率有雨,空气有点污染,接下来我们对比三家AI给出的答案:

  • 通义千问:最拉垮,主要是没能获取今天杭州西湖的天气,给出的答案只是根据历史经验,所以没有什么参考价值;

  • 文心一言:给出了杭州西湖的天气,包括气温、风力、空气质量为轻度污染都完全符合实际情况,而且建议结果分为1、2、3比较有条理,还对衣服的颜色给出来具体的配色,可以说非常好;

  • KIMI:先从网上找到了三份关于杭州天气的网页,然后根据网页内容给出建议,只不过它所查询的天气并不是今天3月24号的,所以给出的答案也就有问题了,最大错误就是空气质量,它给出的是空气质量很好,实际情况是有点污染的,其次结果也没有百度文心一言有条理,对衣服的颜色也没有给出具体的配色,可以看出在这个问题上KIMI是比文心一言差不少了。

小结

文心一言>KIMI>通义千问

问题二:我和老婆户口在杭州,有三个娃,请问今天我在杭州西湖区可以买几套二手房?

KIMI

添加图片注释,不超过 140 字(可选)

文心一言

添加图片注释,不超过 140 字(可选)

通义千问

添加图片注释,不超过 140 字(可选)

对比

杭州在3月14日取消了二手房限购。

  • 通义千问:最拉垮的还是通义千问题,给出政策还是2022年5月17日的,也没给出具体可以购买几套房;

  • KIMI:唯一给出正确答案。KIMI这得益于他是实时从网上搜索的,而且正确搜索到了杭州取消二手房限购的网页,所以给出了正确的答案。

  • 文心一言:应该没有更新杭州3月14取消二手房限购的内容,所以给出是的3月14日之前的答案,回答是错误的。

小结

KIMI>文心一言>通义千问

问题三、河北邯郸3名不满十四周岁初中生杀害同班同学并掩埋,请问这三名初中生在法律上会受到什么惩罚?

KIMI

添加图片注释,不超过 140 字(可选)

文心一言

添加图片注释,不超过 140 字(可选)

通义千问

添加图片注释,不超过 140 字(可选)

对比

法律问题应该是送分题。

  • 通义千问:还是最拉垮,没有给出答案;

  • 文心一言:和KIMI回答结果是一样的,但是在细节还是文心一言更强一点,给了具体的法律依据是《刑法》第十七条;

  • KIMI:回答的和文心一言基本差不多。

小结

文心一言>KIMI>通义千问

问题四、使用JAVA代码合成部门树

[{"id": 1,"pid": 0,"name": "产品研发中心"
},{"id": 2,"pid": 1,"name": "后端"
},{"id": 3,"pid": 1,"name": "前端"
},{"id": 4,"pid": 2,"name": "JAVA"
},{"id": 5,"pid": 3,"name": "JS"
}{"id": 6,"name": "测试数据"
}]
帮我通过id=pid合成部门树,请给出JAVA代码

注意这里最后一条是故意造的错误数据。

KIMI

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;class Department {int id;String name;List<Department> children = new ArrayList<>();public Department(int id, String name) {this.id = id;this.name = name;}public void addChild(Department child) {children.add(child);}public static Department fromJson(Map<String, Object> jsonMap) {return new Department((Integer) jsonMap.get("id"), (String) jsonMap.get("name"));}
}
public class DepartmentTreeBuilder {public static Department buildTree(List<Map<String, Object>> departments) {Map<Integer, Department> departmentMap = new HashMap<>();List<Department> roots = new ArrayList<>();for (Map<String, Object> deptJson : departments) {int id = (Integer) deptJson.get("id");String name = (String) deptJson.get("name");Department dept = Department.fromJson(deptJson);departmentMap.put(id, dept);if (deptJson.get("pid").equals(0)) {roots.add(dept);}}for (Map<String, Object> deptJson : departments) {int id = (Integer) deptJson.get("id");int pid = (Integer) deptJson.get("pid");if (pid != 0 && departmentMap.containsKey(pid)) {Department dept = departmentMap.get(id);Department parent = departmentMap.get(pid);if (parent != null) {parent.addChild(dept);}}}return roots.isEmpty() ? null : roots.get(0); // Assuming there is only one root}public static void main(String[] args) {List<Map<String, Object>> departments = new ArrayList<>();departments.add(Map.of("id", 1, "pid", 0, "name", "产品研发中心"));departments.add(Map.of("id", 2, "pid", 1, "name", "后端"));departments.add(Map.of("id", 3, "pid", 1, "name", "前端"));departments.add(Map.of("id", 4, "pid", 2, "name", "JAVA"));departments.add(Map.of("id", 5, "pid", 3, "name", "JS"));Department root = buildTree(departments);String json = new Gson().toJson(root);System.out.println(json);}
}

文心一言

public class DepartmentTreeBuilder {  public static void main(String[] args) {  List<Department> departments = new ArrayList<>();  departments.add(new Department(1, 0, "产品研发中心"));  departments.add(new Department(2, 1, "后端"));  departments.add(new Department(3, 1, "前端"));  departments.add(new Department(4, 2, "JAVA"));  departments.add(new Department(5, 3, "JS"));  departments.add(new Department(6, 0, "测试数据")); // 注意这里pid应为0或其他实际父节点id,否则无法正确构建树形结构  List<Department> tree = buildDepartmentTree(departments);  for (Department dept : tree) {  printDepartmentTree(dept, 0);  }  }  public static List<Department> buildDepartmentTree(List<Department> departments) {  Map<Integer, Department> idMap = new HashMap<>();  List<Department> tree = new ArrayList<>();  // 首先,将所有部门按照id放入Map中,方便后续查找  for (Department dept : departments) {  idMap.put(dept.getId(), dept);  }  // 遍历所有部门,构建树形结构  for (Department dept : departments) {  if (dept.getPid() == 0) {  // pid为0的作为树的根节点  tree.add(dept);  } else {  // 查找父节点,并添加到父节点的子节点列表中  Department parent = idMap.get(dept.getPid());  if (parent != null) {  if (parent.getChildren() == null) {  parent.setChildren(new ArrayList<>());  }  parent.getChildren().add(dept);  }  }  }  return tree;  }  public static void printDepartmentTree(Department dept, int level) {  for (int i = 0; i < level; i++) {  System.out.print("--");  }  System.out.println(dept.getName());  if (dept.getChildren() != null) {  for (Department child : dept.getChildren()) {  printDepartmentTree(child, level + 1);  }  }  }  static class Department {  private int id;  private int pid;  private String name;  private List<Department> children;  public Department(int id, int pid, String name) {  this.id = id;  this.pid = pid;  this.name = name;  }  public int getId() {  return id;  }  public int getPid() {  return pid;  }  public String getName() {  return name;  }  public List<Department> getChildren() {  return children;  }  public void setChildren(List<Department> children) {  this.children = children;  }  }  
}

通义千问

class Department {int id;int pid;String name;List<Department> children = new ArrayList<>();Department(int id, int pid, String name) {this.id = id;this.pid = pid;this.name = name;}@Overridepublic String toString() {return "Department{" +"id=" + id +", pid=" + pid +", name='" + name + ''' +", children=" + children +'}';}static Department buildDepartmentTree(List<Department> depts) {Map<Integer, Department> map = new HashMap<>();for (Department dept : depts) {map.put(dept.id, dept);}for (Department dept : depts) {if (map.containsKey(dept.pid)) {map.get(dept.pid).children.add(dept);}}// 返回根节点(pid为0的部门)return map.values().stream().filter(d -> d.pid == 0).findFirst().orElse(null);}public static void main(String[] args) {List<Department> depts = new ArrayList<>();depts.add(new Department(1, 0, "产品研发中心"));depts.add(new Department(2, 1, "后端"));depts.add(new Department(3, 1, "前端"));depts.add(new Department(4, 2, "JAVA"));depts.add(new Department(5, 3, "JS"));depts.add(new Department(6, -1, "测试数据")); // 设置无效的pid为-1,表示该节点无父节点Department root = buildDepartmentTree(depts);System.out.println(root);}
}

对比

  • 通义千问:代码能正确执行,从写法上面来看通义千问代码量最少,还用了lambda表达示,看起来更高级,在代码生成领域终于胜出了;

  • KIMI:这一题只有KIMI给出答案是错的,Department少了pid;

  • 文心一言:代码能正确执行,没有通义千问生成的好。

小结

通义千问>文心一言>KIMI

问题五、使用JAVA处理数据

帮我把这两条部门数据去除根组织和部门ID,将部门名用-分隔输出,请给出基于JDK8的JAVA代码 
EveryOne#根组织/50#侠客集团/96332#工作机动/103965#cy专属组织/103967#策划部门十一个非常厉害的部门你知道吗 
EveryOne#根组织/50#侠客集团/96332#工作机动/103965#cy专属组织/104014#技术部门懂技术会生活的好部门呢你想来吗

KIMI

添加图片注释,不超过 140 字(可选)

运行结果:

侠客集团-96332#工作机动-103965#cy专属组织-103967#策划部门十一个非常厉害的部门你知道吗
侠客集团-96332#工作机动-103965#cy专属组织-104014#技术部门懂技术会生活的好部门呢你想来吗

文心一言

添加图片注释,不超过 140 字(可选)

运行结果:

根组织-侠客集团-工作机动-cy专属组织-策划部门十一个非常厉害的部门你知道吗
根组织-侠客集团-工作机动-cy专属组织-技术部门懂技术会生活的好部门呢你想来吗

通义千问

添加图片注释,不超过 140 字(可选)

运行结果:

cy专属组织-策划部门十一个非常厉害的部门你知道吗
cy专属组织-技术部门懂技术会生活的好部门呢你想来吗

对比

  • 通义千问:多去除了“侠客集团”和工作动机部门;

  • 文心一言:只是没有去除根组织,其它都是正确了,表现最好;

  • KIMI:输出错误,没有去除部门ID,表现最差。

小结

文心一言>通义千问>KIMI

问题六、多线程图片下载

输入:
http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg
http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg
要求:请基本JDK8编写代码将输入的URL使用下载到 C://img下,文件名从URL中获取,要考虑URL中获取文件名重复问题,要求使用多线程下载

KIMI

import java.io.*;
import java.net.URL;
import java.nio.file.*;
import java.util.*;
import java.util.concurrent.*;public class ImageDownloader {private static final String DOWNLOAD_DIR = "C://img"; // 下载目录public static void main(String[] args) {List<String> imageUrls = Arrays.asList("http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg","http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg");ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());try {List<Future<Path>> futures = new ArrayList<>();for (String imageUrl : imageUrls) {Path path = Paths.get(DOWNLOAD_DIR, getFileNameFromUrl(imageUrl));futures.add(executorService.submit(() -> downloadImage(imageUrl, path)));}for (Future<Path> future : futures) {future.get(); // 等待所有下载任务完成}} catch (InterruptedException | ExecutionException e) {e.printStackTrace();} finally {executorService.shutdown();}}private static String getFileNameFromUrl(String url) {String fileName = url.substring(url.lastIndexOf('/') + 1);return fileName;}private static Path downloadImage(String imageUrl, Path path) throws IOException, InterruptedException {URL url = new URL(imageUrl);try (InputStream in = url.openStream();OutputStream out = new FileOutputStream(path.toFile())) {byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = in.read(buffer)) != -1) {out.write(buffer, 0, bytesRead);}Files.createDirectories(path.getParent()); // 确保父目录存在Files.move(path, path.resolveSibling(getUniqueFileName(path.getFileName().toString()))); // 重命名文件以避免重复}return path;}private static String getUniqueFileName(String fileName) {Path path = Paths.get(DOWNLOAD_DIR, fileName);int counter = 1;while (Files.exists(path)) {path = Paths.get(DOWNLOAD_DIR, fileName.replace(".jpg", "(" + counter + ").jpg"));counter++;}return path.getFileName().toString();}
}

文心一言

import java.io.BufferedInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.net.HttpURLConnection;  
import java.net.URL;  
import java.nio.file.Files;  
import java.nio.file.Path;  
import java.nio.file.Paths;  
import java.security.MessageDigest;  
import java.security.NoSuchAlgorithmException;  
import java.util.ArrayList;  
import java.util.List;  
import java.util.concurrent.ExecutorService;  
import java.util.concurrent.Executors;  public class ImageDownloader {  private static final String TARGET_DIRECTORY = "C://img";  private static final int THREAD_POOL_SIZE = 5; // 可以根据需要调整线程池大小  public static void main(String[] args) {  // 输入的URL列表  List<String> urls = new ArrayList<>();  urls.add("http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg");  urls.add("http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg");  ExecutorService executor = Executors.newFixedThreadPool(THREAD_POOL_SIZE);  for (String url : urls) {  executor.submit(() -> downloadImage(url));  }  executor.shutdown();  try {  while (!executor.isTerminated()) {  // 等待所有任务完成  Thread.sleep(100);  }  System.out.println("All images downloaded.");  } catch (InterruptedException e) {  e.printStackTrace();  }  }  private static void downloadImage(String urlString) {  try {  URL url = new URL(urlString);  HttpURLConnection connection = (HttpURLConnection) url.openConnection();  connection.setRequestMethod("GET");  try (InputStream in = new BufferedInputStream(connection.getInputStream());  FileOutputStream fos = getUniqueFileOutputStream(urlString)) {  byte[] buffer = new byte[1024];  int bytesRead;  while ((bytesRead = in.read(buffer)) != -1) {  fos.write(buffer, 0, bytesRead);  }  } finally {  connection.disconnect();  }  } catch (IOException e) {  e.printStackTrace();  }  }  private static FileOutputStream getUniqueFileOutputStream(String urlString) throws IOException {  String fileName = getFileNameFromUrl(urlString);  String filePath = Paths.get(TARGET_DIRECTORY, fileName).toString();  // 确保文件名的唯一性  Path path = Paths.get(filePath);  if (Files.exists(path)) {  fileName = getUniqueFileName(fileName);  filePath = Paths.get(TARGET_DIRECTORY, fileName).toString();  }  Path targetPath = Paths.get(filePath);  Files.createDirectories(targetPath.getParent());  return new FileOutputStream(targetPath.toFile());  }  private static String getFileNameFromUrl(String url) {  String[] parts = url.split("/");  return parts[parts.length - 1];  }  private static String getUniqueFileName(String fileName) throws NoSuchAlgorithmException {  MessageDigest md = MessageDigest.getInstance("MD5");  byte[] hashBytes = md.digest(fileName.getBytes());  StringBuilder hexString = new StringBuilder();  for (byte b : hashBytes) {  String hex = Integer.toHexString(0xff & b);  if (hex.length() == 1) hexString.append('0');  hexString.append(hex);  }  return fileName + "_" + hexString.toString();  }  
}

通义千问

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ImageDownloader {private static final String DOWNLOAD_DIR = "C://img";public static void main(String[] args) throws IOException {String[] imageUrls = {"http://pic.people.com.cn/NMediaFile/2024/0324/MAIN17112471760803BC3VHT0EB.jpg",   "http://pic.people.com.cn/NMediaFile/2024/0324/MAIN1711247176118UWI7FVR0OP.jpg"};ExecutorService executor = Executors.newFixedThreadPool(2); // 创建固定大小的线程池for (String imageUrl : imageUrls) {Runnable worker = () -> downloadImage(imageUrl);executor.execute(worker);}executor.shutdown(); // 关闭线程池,等待所有任务完成while (!executor.isTerminated()) {// 等待所有线程执行完毕}System.out.println("所有图片下载完成!");}private static void downloadImage(String imageUrl) {try {URL url = new URL(imageUrl);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setConnectTimeout(5000);connection.connect();if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {String fileName = extractFileNameFromUrl(url);Path targetPath = Paths.get(DOWNLOAD_DIR, ensureUniqueFileName(fileName));Files.createDirectories(targetPath.getParent()); // 如果目录不存在则创建try (ReadableByteChannel rbc = Channels.newChannel(connection.getInputStream());FileOutputStream fos = new FileOutputStream(targetPath.toFile())) {fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);}System.out.println("成功下载图片: " + targetPath.toString());} else {System.out.println("无法下载图片,响应码: " + connection.getResponseCode());}} catch (IOException e) {System.err.println("图片下载失败: " + imageUrl);e.printStackTrace();}}// 从URL中提取文件名private static String extractFileNameFromUrl(URL url) {String path = url.getPath();return path.substring(path.lastIndexOf('/') + 1);}// 确保文件名唯一,比如通过添加时间戳后缀private static String ensureUniqueFileName(String fileName) {Path path = Paths.get(DOWNLOAD_DIR, fileName);if (!Files.exists(path)) {return fileName;}DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss_SSS");LocalDateTime now = LocalDateTime.now();String timestamp = now.format(formatter);String extension = fileName.substring(fileName.lastIndexOf('.'));return fileName.replace(extension, "_" + timestamp + extension);}
}

对比

  • 结果来看KIMI代码有错误,无法运行,文心一言少了一个异常抛出,修改可以运行下载,通义千问能正常运行下载,处理的逻辑也非常好;

  • 目录不存在处理:KIMI没有考虑下载目录C://img不存在报错问题,文心一言和通义千问都考虑了;

  • 文件名重复问题:KIMI使用后缀加(N),文心一言是使用文件名MD5,通义千问使用时间戳。KIMI思路最正确可是写法错了,文心一言使用文件名MD5思路就错了,通义千问使用时间虽然不完美,但是是可以解决大部分URL文件名相同问题。

小结

通义千问>文心一言>KIMI

总结

从这六道题目来看KIMI并没有多么的让人惊艳,大体上我们可以得出以下结论:

  • 依赖数据源;可能是KIMI自己没有能力收集大量数据和花大价钱买显卡去训练,所以回答结果非常依赖它得到的数据;

  • 通用问题依赖搜索引擎;想做通用大模型肯定要有大量数据,KIMI使用实时搜索去获取数据源,再给出结果。目前不知道它使用的是哪家搜索引擎,如果非常依赖搜索引擎那在通用大模型领域可能是硬伤,因为国内搜索引擎老大是谁大家都知道;

  • 在代码生成领域不是很成熟;这一点应该不用太担心,国为程序员是第一波接触大模型的人,谁手上还没有几个墙外的产品,根本看不上国内的这些产品;

  • “百模大战”中的一员;给我的感觉它只是“百模大战”中的一员,并没有鹤立鸡群,能从“百模大战“中脱颖而出的惊艳。

最后关于它为什么会火起来这个就不得而知了,不过大家可以思考一下去年火起来的淄博烧烤、过年期间火起来的哈尔滨、最近正在火的天水麻辣烫,表明上看谁能火起来是门玄学,不过如果真的去深挖这些现象级火起来网红城市,你会发现玄学后面都是人(资本)在操控。

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

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

相关文章

java面向对象编程基础

对象&#xff1a; java程序中的对象&#xff1a; 本质上是一种特殊的数据结构 对象是由类new出来的&#xff0c;有了类就可以创建对象 对象在计算机的执行原理&#xff1a; student s1new student();每次new student(),就是在堆内存中开辟一块内存区域代表一个学生对象s1变…

Matlab DDPG

文章目录 1 rlSimulinkEnv1.1 说明1.2 例子1.2.1 使用工作空间Agent创建Simulink环境1.2.2 为Simulink模型创建强化学习环境1.2.3 创建Simulink多Agents环境2 创建Simulink环境和训练Agent2.1 创建环境接口2.2 创建DDPG Agent2.3 训练Agent2.4 验证已训练的Agent3 创建Simulink…

创建linux虚拟机系统:(安装Ubuntu镜像文件,包含语言设置、中文输入法、时间设置)

我下载的是清华大写开源软件镜像站中的ubuntu-20.04.6-desktop-amd64.iso这个镜像文件&#xff0c; 这个文件我下载完成之后没有解压&#xff0c;直接在创建虚拟机的时候选择的压缩包。 地址为&#xff1a;Index of /ubuntu-releases/20.04/ | 清华大学开源软件镜像站 | Tsin…

Git——IDEA中的使用详解

目录 Git1、IDEA中配置Git2、将本地项目推送到远程仓库2.1、创建项目远程仓库2.2、初始化本地仓库2.3、连接远程仓库2.4、提交到本地仓库2.5、推送到远程仓库 3、克隆远程仓库到本地4、基本操作4.1、代码提交到暂存区4.2、暂存区代码提交到本地库4.3、推送到远程仓库4.4、撤销本…

网络: 网络层

IP地址: 分为网络号和主机号. 用来标识主机 IP协议 IP协议报文 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因此IP头部最大长度是60字节. 8…

HarmonyOS NEXT应用开发案例集

概述 随着应用代码的复杂度提升&#xff0c;为了使应用有更好的可维护性和可扩展性&#xff0c;良好的应用架构设计变得尤为重要。本篇文章将介绍一个应用通用架构的设计思路&#xff0c;以减少模块间的耦合、提升团队开发效率&#xff0c;为开发者呈现一个清晰且结构化的开发…

YOLOv8:Roboflow公开数据集训练模型

Roboflow公开数据集 Roboflow是一个提供计算机视觉数据集管理和处理工具的平台。虽然Roboflow本身并不创建或策划公开数据集&#xff0c;但它提供了一系列功能&#xff0c;帮助用户组织、预处理、增强和导出计算机视觉数据集。 官方网站&#xff1a;https://universe.roboflow…

FOCUS-AND-DETECT: A SMALL OBJECTDETECTION FRAMEWORK FOR AERIAL IMAGES

摘要 为了解决小对象检测问题&#xff0c;提出了一个叫做 Focus-and Detect 的检测框架&#xff0c;它是一个两阶段的框架。 第 一阶段包括由高斯混合模型监督的对象检测器网络&#xff0c;生成构成聚焦区域的对象簇 。 第二阶段 也是一个物体探测器网络&#xff0c;预测聚焦…

Web框架开发-Ajax

一、 Ajax准备知识:json 1、json(Javascript Obiect Notation,JS对象标记)是一种轻量级的数据交换格式 1 2 它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。…

谧林涓露门禁

原神武器升级材料谧林涓露和门禁好像聂。 difference(){union(){cylinder(2, 10,10, $fn365);hull(){translate([15,0,0])cylinder(1,2,2,$fn365);cylinder(1,10,10,$fn365);}}translate([15,0,-1])cylinder(4,1,1,$fn365); }

swagger3快速使用

目录 &#x1f37f;1.导入依赖 &#x1f32d;2.添加配置文件 &#x1f9c2;3.添加注解 &#x1f96f;4.访问客户端 1.导入依赖 引入swagger3的依赖包 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artif…

智能驾驶域控制器行业介绍

汽车智能驾驶功能持续高速渗透&#xff0c;带来智能驾驶域控制器市场空间快速增 长。智驾域控制器是智能驾驶决策环节的重要零部件&#xff0c;主要功能为处理感知 信息、进行规划决策等。其核心部件主要为计算芯片&#xff0c;英伟达、地平线等芯 片厂商市场地位突出。随着消费…

【c语言】详解操作符(上)

1. 操作符的分类 2. 原码、反码、补码 整数的2进制表示方法有三种&#xff0c;即原码、反码、补码 有符号整数的三种表示方法均有符号位和数值位两部分&#xff0c;2进制序列中&#xff0c;最高位的1位是被当做符号位其余都是数值位。 符号位都是用0表示“正”&#xff0c;用…

二分算法(查找)

问题&#xff1a;在数组中查找某一个数字x4的下标 例&#xff1a;arr:1 3 4 6 10 20 21 22 显然&#xff0c;数字4的下标为3。 1、线性查找&#xff0c;一个个地去遍历&#xff0c;时间复杂度为O(n) 2、二分查找&#xff0…

国务院办公厅发布:政府类网站网页设计规范(试行)

国务院办公厅于2019年12月发布了《政府类网站网页设计规范&#xff08;试行&#xff09;》。该规范的发布旨在统一政府类网站的设计风格和标准&#xff0c;提升政府网站的用户体验和可访问性&#xff0c;推动政府信息公开和服务的提升。 该规范涵盖了政府类网站的各个方面&…

【Esp32-Cam模型训练相关问题解决方案】

Esp32-Cam模型训练相关问题解决方案 一、AttributeError: module everywhereml.data.ImageDataset has no attribute from_nested_folders现象解决方案 二、Connection to 192.168.x.xxx timed out(connect timeoutNone)三、卡在0%| |0/100 [00:00<?, ?it/s] 抛砖引玉&…

Linux之基础IO

1.C语言中的文件操作函数 文件的打开 path为文件路径&#xff0c;mode为打开方式&#xff0c;它们都是字符串。 代码演示&#xff1a; 此时&#xff0c;当前目录中并没有log.txt文件&#xff0c;但是没关系&#xff0c;fopen会在当前路径下创建log.txt文件。 简单来说&#xf…

数据分析-Pandas序列时间移动窗口化操作

数据分析-Pandas序列时间移动窗口化操作 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表…

Python3 字典

字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值 key>value 对用冒号 : 分割&#xff0c;每个对之间用逗号(,)分割&#xff0c;整个字典包括在花括号 {} 中 ,格式如下所示&#xff1a; d {key1 : value1, key2 : value2, key3 : value3 } 键必…

MTransE翻译

MTransE翻译 阅读时间&#xff1a;2024.03.23 领域&#xff1a;知识图谱&#xff0c;知识对齐 作者&#xff1a;Muhao Chen等人 UCLA 出处&#xff1a;IJCAI Multilingual Knowledge Graph Embeddings for Cross-lingual Knowledge Alignment 用于交叉知识对齐的多语言知识图…