基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(三)

news2024/9/30 5:36:22

目录

  • 前言
  • 总体设计
    • 系统整体结构图
    • 系统流程图
  • 运行环境
    • Python环境
    • Pycharm 环境
    • Scikit-learnt
  • 模块实现
    • 1. 数据预处理
    • 2. 客流预测
    • 3. 百度地图API调用
    • 4. GUI界面设计
      • 1)手绘地图导入
      • 2)下拉菜单设计
      • 3)复选框设计
      • 4)最短路径结果输出界面设计
      • 5)智能推荐结果输出设计
      • 6)界面展示
    • 5. 路径规划
    • 6. 智能推荐
  • 相关其它博客
  • 工程源代码下载
  • 其它资料下载


在这里插入图片描述

前言

本项目的核心是利用百度地图API获取步行时间和借助GBDT(梯度提升决策树)模型进行排队时间的预测。它旨在为用户提供一种自主选择多个目的地的功能,然后系统会输出最佳路线规划的结果,并根据用户的选择提供智能化的建议。

首先,项目利用百度地图API,能够获取到步行时间信息。这些信息包括从一个地点到另一个地点所需的预计步行时间。这个步骤确保了系统具有地理位置感知能力,可以理解用户的出行需求。

接下来,项目使用GBDT模型,这是一种强大的机器学习模型,用于预测排队时间。GBDT模型会考虑多个因素,如交通状况、目的地之间的距离、历史排队数据等,来预测用户在不同地点排队的时间。

一旦获取了这些信息,系统可以让用户自主选择多个目的地。用户可以输入他们的出发点和多个目标地点,然后系统会根据百度地图API的步行时间和GBDT模型的排队时间预测,计算出最佳路线规划。这个规划考虑了用户的时间限制、排队时间、步行时间等因素,以确保用户能够在最短的时间内到达所有目的地。

最后,系统还可以根据用户的选择,提供智能化的建议。例如,如果用户希望优先选择最短排队时间的目的地,系统可以相应地调整路线规划。

总的来说,这个项目结合了地图数据和机器学习技术,为用户提供了一个方便的自主选择多个目的地并获取最佳路线规划的工具。这对于城市出行和旅游规划非常有用,可以帮助用户更高效地安排行程。

总体设计

本部分包括系统整体结构图和系统流程图。

系统整体结构图

系统整体结构如图所示。

在这里插入图片描述

系统流程图

系统流程如图所示。

在这里插入图片描述
路径规划流程如图所示。
在这里插入图片描述

计算路径耗时流程,如图所示。

在这里插入图片描述

运行环境

本部分包括 Python 环境、Pycharm 环境和Scikit-learn环境。

Python环境

需要Python 3.6及以上配置,在Windows环境下推荐下载Anaconda完成Python所需环境的配置,下载地址为https://www.anaconda.com/,也可下载虚拟机在Linux环境下运行代码。

Pycharm 环境

PyCharm下载地址为http://www.jetbrains.com/pycharm/download/#section=windows,进入网站后单击Comminity版本下的DOWNLOAD下载安装包,下载完成后安装。单击Create New Project创建新的项目文件,Location为存放工程的路径,单击project附近的三角符号,可以看到PyCharm已经自动获取Python 3.6,单击create完成。

Scikit-learnt

安装CPU版本的Scikit-learn: pip install -U --ignore-installed scikit-learn, 或者从Anaconda环境中直接搜索 scikit-learn包进行下载、安装。

模块实现

本项目包括6个模块:数据预处理、客流预测、百度地图API调用、GUI界面设计、路径规划和智能推荐,下面分别给出各模块的功能介绍及相关代码。

1. 数据预处理

详见博客:https://blog.csdn.net/qq_31136513/article/details/133011765#1__49

2. 客流预测

详见博客:https://blog.csdn.net/qq_31136513/article/details/133011802#2__54

3. 百度地图API调用

详见博客:https://blog.csdn.net/qq_31136513/article/details/133011802#3_API_134

4. GUI界面设计

导入Tkinter包进行GUI设计。用户通过下拉菜单手动选择当前位置,勾选目的地。单击“确认”按钮后调用create()函数跳转至最佳路线输出界面。

1)手绘地图导入

相关代码如下:

#背景初始化部分
window = tkinter.Tk()
window.geometry('900x500')
window.title('智能导航系统——欢乐谷')
#显示图片
#通过PIL打开图片
img = Image.open('C:/Users/99509/Desktop/map.jpg')  
img = img.resize((750,500),Image.ANTIALIAS) #Image.ANTIALIAS使图片不模糊
#通过PIL生成PhotoImage对象,即可正常加载
photo = ImageTk.PhotoImage(img)
imageLabel = Label(window, image=photo)
imageLabel.pack(side=LEFT)

2)下拉菜单设计

相关代码如下:

ss=Label(window,text="您当前位置为",justify=RIGHT)
ss.pack()
comvalue=tkinter.StringVar() #窗体自带的文本,新建一个值  
comboxlist=ttk.Combobox(window,textvariable=comvalue) #初始化  
comboxlist["values"]=("入口","玛雅天灾","雪域金翅","异域魔窟","奥德赛之旅","太阳神车","天地双雄","能量风暴")  
all_paths_first=""
def xFunc(event):
  global all_paths_first
  #print(comboxlist.get())
  #当前位置
  if comboxlist.get()=="入口":
        all_paths_first=0
  elif comboxlist.get()=="玛雅天灾":
        all_paths_first=1
  elif comboxlist.get()=="雪域金翅":
        all_paths_first=2
  elif comboxlist.get()=="异域魔窟":
        all_paths_first=3
  elif comboxlist.get()=="奥德赛之旅":
        all_paths_first=4
  elif comboxlist.get()=="太阳神车":
        all_paths_first=5
  elif comboxlist.get()=="天地双雄":
        all_paths_first=6
  elif comboxlist.get()=="能量风暴":
        all_paths_first=7
comboxlist.bind("<<ComboboxSelected>>",xFunc)  
#绑定事件,(下拉列表框被选中时,绑定xFunc()函数)  
comboxlist.pack()  

3)复选框设计

复选框格式是一致的,为了界面简洁,只展示一个复选框设计。

#count判断是否需要调用百度地图API,奇数表示选中
count1=0
N = []
def myEvent1():
    global count1
    if count1%2==0:
        count1+=1
    else:
        count1+=1
#项目选择部分
v1=IntVar()
c1=Checkbutton(window,text='入口',variable=v1,justify=RIGHT,command=myEvent1) #存放选中状态
c1.pack()
l1=Label(window,textvariable=v1,justify=RIGHT)
l1.pack() #未选中显示为0,选中显示为1

4)最短路径结果输出界面设计

相关代码如下:

total=[]    #存放被选择的目的地
total_n=[]  #存放未被选择的地点
#选择地点完成后调出最短路径结果输出界面
def create():
    window2 = tkinter.Toplevel() #新建子窗口windows2
    window2.geometry('300x200')
    window2.title('计算页面')
    s0=Label(window2,text="您选择了:") #文字框s0
    s0.pack()    
    #选择目的地
    if count1%2==1:          #如果被选中
        N.append(0)           #N列表中增加0
        total.append("入口") #total列表中增加“入口”
    else:                       #如果未被选中
        N_notchoose.append(0) #N_notchoose列表中增加0
        total_n.append("入口") #total_n列表中增加“入口”
    if count2%2==1: #以下同理
        N.append(1)
        total.append("玛雅天灾")
    else:
        N_notchoose.append(1)
        total_n.append("玛雅天灾")
    if count3%2==1:
        N.append(2)
        total.append("雪域金翅")
    else:
        N_notchoose.append(2)
        total_n.append("雪域金翅")
    if count4%2==1:
        N.append(3)
        total.append("异域魔窟")
    else:
        N_notchoose.append(3)
        total_n.append("异域魔窟")
    if count5%2==1:
        N.append(4)
        total.append("奥德赛之旅")
    else:
        N_notchoose.append(4)
        total_n.append("奥德赛之旅")
    if count6%2==1:
        N.append(5)
        total.append("太阳神车")
    else:
        N_notchoose.append(5)
        total_n.append("太阳神车")
    if count7%2==1:
        N.append(6)
        total.append("天地双雄")
    else:
        N_notchoose.append(6)
        total_n.append("天地双雄")
    if count8%2==1:
        N.append(7)
        total.append("能量风暴")
    else:
        N_notchoose.append(7)
        total_n.append("能量风暴")
    s_total=Label(window2,text=total) #输出用户选中的地点
    s_total.pack()
    s9=Label(window2,text="最佳路线为:") #文字框s9
    s9.pack()
    get_time(N) #调用get_time进行运算
    PLAN=[]     #用于存放计划路径
    #输出路径
    for i in range(0,len(N)+1):
      if PATH[i]==0:
	      PLAN.append("入口")
      elif PATH[i]==1:
	      PLAN.append("玛雅天灾")
      elif PATH[i]==2:
	      PLAN.append("雪域金翅")
      elif PATH[i]==3:
	      PLAN.append("异域魔窟")
      elif PATH[i]==4:
	      PLAN.append("奥德赛之旅")
      elif PATH[i]==5:
	      PLAN.append("太阳神车")
      elif PATH[i]==6:
	      PLAN.append("天地双雄")
      else:
	      PLAN.append("能量风暴")
    s10=Label(window2,text=PLAN) #输出计划的最短路径
    s10.pack()
    s11=Label(window2,text="\n大约耗时:"+str(round(TIME[0],2))+"小时") 
#输出对应总耗时
    s11.pack()
    b2=Button(window2,text='猜你喜欢',command=create_guess) 
#新建“猜你喜欢”按钮进入智能推荐模块
    b2.pack()
    b3=Button(window2,text='退出',command=window.destroy)  #退出按钮
    b3.pack() 

5)智能推荐结果输出设计

相关代码如下:

#创建智能推荐的页面
def create_guess():
    window3 = tkinter.Toplevel() #新建子窗口windows3
    window3.geometry('400x250')
    window3.title('猜你喜欢')
    s0=Label(window3,text="您选择了:") #文字框s0
    s0.pack()
    s_total=Label(window3,text=total) #输出用户选中的地点
    s_total.pack()
    s7=Label(window3,text="为您推荐:") #文字框s7
    s7.pack()
    try:
        guess_time(N) #调用guess_time函数,计算推荐地点及推荐最短路径
    except:
      tkinter.messagebox.showwarning("提示", "选取地点有误!\n请退出重新选取")
#加入异常处理,跳出提示框
    PLAN=[] #存放推荐最短路径
    #输出路径
    for i in range(0,len(N)+2):
      if PATH_guess[i]==0:
	      PLAN.append("入口")
      elif PATH_guess[i]==1:
	      PLAN.append("玛雅天灾")
      elif PATH_guess[i]==2:
	      PLAN.append("雪域金翅")
      elif PATH_guess[i]==3:
	      PLAN.append("异域魔窟")
      elif PATH_guess[i]==4:
	      PLAN.append("奥德赛之旅")
      elif PATH_guess[i]==5:
	      PLAN.append("太阳神车")
      elif PATH_guess[i]==6:
	      PLAN.append("天地双雄")
      else:
	      PLAN.append("能量风暴")
  s8=Label(window3,text=location[recommend]) #输出推荐的地点
  s8.pack()
  s9=Label(window3,text="加入推荐地点的最佳路线为:") #文本框s9
  s9.pack()
  s10=Label(window3,text=PLAN) #输出推荐的最短路径
  s10.pack()
  s11=Label(window3,text="\n大约耗时:"+str(round(TIME_guess[0],2))+"小时") #输出推荐的总耗时
    s11.pack()
    s12=Label(window3,text="预计比原路线多花费:"+str(round((TIME_guess[0]-TIME[0]),2))+"小时") #输出推荐一个地点后的总耗时与之前总耗时的差
    s12.pack()
    b3=Button(window3,text='返回',command=window3.destroy) 
#“返回”按钮,返回上一界面
    b3.pack()
    b4=Button(window3,text='退出',command=window.destroy) 
#“退出”按钮,退出程序
    b4.pack()

6)界面展示

GUI主页面如图所示。
在这里插入图片描述

下拉菜单如图所示。
在这里插入图片描述

5. 路径规划

通过调用百度地图API模块产生节点之间的步行时间矩阵和客流模型,应用穷举法设计算法,得出最佳路线规划。

GUI界面下拉菜单中选择当前位置作为所有可能线路的起点,复选框中目的地作为节点,调用itertools库中的permutations()函数进行全排列,路线每到节点时间、排队时间输出在cmd窗口,如图所示。

在这里插入图片描述

最佳路线和总耗时输出在GUI模块设计的界面当中,如图所示。

在这里插入图片描述
相关代码如下:

#获得最佳路径和出游时间
def get_time(N):
  global TIME
  global PATH
  gbdt_6_model_path = "D:/~STUDY~/Grade3/信息系统设计/final_files/data/模型/gbdt_6.model" 
  gbdt_model = joblib.load(gbdt_6_model_path) #加载模型
  #初始化客流模型顺序不可改变
  features=pd.DataFrame({'temperature_average':[2],
                      'wind_average':[0],
                      'weather_average':[6],
					  'time':[0],
					  'isholiday':[0],
					  'dayofweek':[1]})
  #N = [0,1,2,3] #GUI界面单击选择
  n=len(N)+1
  print(all_paths_first)
  all_paths_tuple=list(itertools.permutations(N,n-1)) 
#得到的全排列是元组tuple
  all_paths=[]
  #tuple类型不能插入操作,所以转换成list
  for i in range(0,math.factorial(n-1)):
    all_paths.append(list(all_paths_tuple[i]))
    all_paths[i].insert(0,all_paths_first)
  path = list()
  all_time = float('inf') #无穷大
  #第i条路线
  for i in range(0,math.factorial(n-1)):
    time = 0 #(h)
    nowtime = 9 #可以获取当前时间,需要事件表示的转换(h)
    print("第"+str(i+1)+"条路线为:"+str(all_paths[i]))
    #第i条路线的第j个地点
    for j in range(0,n-1):
      time = time + (walk_time[all_paths[i][j]][all_paths[i][j+1]]/3600) 
#到达一个地点的时间
      nowtime = nowtime+time 
      features['time'] = nowtime
      gbdt_predict_labels = gbdt_model.predict(features)/2000 
#客流量/2000当作时间(h)
      print("现在的时间是:"+str(nowtime)+" 此时"+str(j)+"点的排队时间为:"+str(gbdt_predict_labels)+"h")
      time = time + gbdt_predict_labels + (PLAYTIME[j]/60)
    print("耗时为:"+str(time))
print("===================================================================")
    if all_time>time:
      all_time = time
      path = all_paths[i]
  print("耗时最短的路径为:"+str(path)+" 耗时为:"+str(all_time))
  PATH = path
  TIME = all_time

6. 智能推荐

系统将用户未选择的地点一次分别加入已选择的队列中进行运算,其基本思路与最佳路线规划模块一致,采用穷举法得到所有路线及其总耗时,最后将它们输出,实现智能推荐。

相关代码如下:

#智能推荐“猜你喜欢”的运算
def guess_time(N):
  global TIME_guess
  global PATH_guess
  global recommend
  path_whole = list()
  all_time_whole = float('inf') #无穷大
  gbdt_6_model_path = "D:/~STUDY~/Grade3/信息系统设计/final_files/data/模型/gbdt_6.model" 
  gbdt_model = joblib.load(gbdt_6_model_path) #加载模型
  features=pd.DataFrame({'temperature_average':[2],
                      'wind_average':[0],
                      'weather_average':[6],
					  'time':[0],
					  'isholiday':[0],
					  'dayofweek':[1]})
  #N = [0,1,2,3] #GUI界面单击选择
  print('起点是:'+str(all_paths_first))
  for nn in range(0,len(N_notchoose)): 
#把未选择的地点分别加入到已选择的队列中进行计算
      guess_path = []
      guess_path = N[:]
      guess_path.append(N_notchoose[nn]) #构建推荐的列表
      print(guess_path)
      if(all_paths_first in guess_path):
          pass    #如果未选择的地点是起点,则跳过
      else:
     all_paths_tuple=list(itertools.permutations(guess_path,len(guess_path))) 
#得到的全排列是元组tuple
          all_paths=[]
          #tuple类型不能插入操作,所以转换成list
          #for i in range(0,math.factorial(n-1)):调试代码
          for i in range(0,math.factorial(len(guess_path))):
            all_paths.append(list(all_paths_tuple[i]))
            all_paths[i].insert(0,all_paths_first)
          path = list()
          all_time = float('inf') #无穷大
            #第i条路线
          for i in range(0,math.factorial(len(guess_path))):
            time = 0 #(h)
            nowtime = 9 #可以获取当前时间,需要事件表示的转换(h)
            print("第"+str(i+1)+"条路线为:"+str(all_paths[i]))
            #第i条路线的第j个地点
            for j in range(0,len(guess_path)):
              time = time + (walk_time[all_paths[i][j]][all_paths[i][j+1]]/3600) 
#到达一个地点的时间
              nowtime = nowtime+time 
              features['time'] = nowtime
              gbdt_predict_labels = gbdt_model.predict(features)/2000 
#客流量/2000当作时间(h)
              print("现在的时间是:"+str(nowtime)+" 此时"+str(j)+"点的排队时间为:"+str(gbdt_predict_labels)+"h")
              time = time + gbdt_predict_labels + (PLAYTIME[j]/60)
            print("耗时为:"+str(time))
            print("")
            if all_time>time:
              all_time = time
              path = all_paths[i]
          if all_time_whole>all_time:
              all_time_whole = all_time
              path_whole=path[:]
              recommend = N_notchoose[nn]
              print("推荐第"+str(recommend)+"个景点")
  print("推荐第"+str(recommend)+"个景点")
  print("智能推荐耗时最短的路径为a:"+str(path_whole)+"  耗时为:"+str(all_time_whole))
  PATH_guess = path_whole
  TIME_guess = all_time_whole

在cmd窗口输出所有路径及该路径每到一节点的时间,如图所示。

在这里插入图片描述

在GUI模块设计的界面中显示最佳路线和总耗时,如图所示。

在这里插入图片描述

相关其它博客

基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(一)

基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(二)

基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(四)

工程源代码下载

详见本人博客资源下载页


其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

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

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

相关文章

睿趣科技:抖音开一家网店大概什么时候回本

随着移动互联网的迅猛发展&#xff0c;社交媒体平台如抖音成为了商家推广产品和服务的热门渠道之一。许多人都希望能够通过在抖音上宣传自己的产品&#xff0c;甚至考虑开一家网店&#xff0c;但回本的时间是一个关键问题。本文将探讨抖音开一家网店大概什么时候回本的问题。 首…

calloc

目录 前提须知&#xff1a; 函数介绍&#xff1a; 原型如下&#xff1a; 申请空间&#xff1a; 判断是否申请成功&#xff1a; 释放空间&#xff1a; calloc与malloc的相同之处与不同之处&#xff1a; 相同之处&#xff1a; 不同之处&#xff1a; 举例&#xff1a; ca…

API接口知识小结及电商数据平台商品详情接口请求案例

应用程序接口API&#xff08;Application Programming Interface&#xff09;&#xff0c;是提供特定业务输出能力、连接不同系统的一种约定。这里包括外部系统与提供服务的系统&#xff08;中后台系统&#xff09;或后台不同系统之间的交互点。包括外部接口、内部接口&#xf…

无涯教程-JavaScript - SUMXMY2函数

描述 SUMXMY2函数返回两个数组中相应值的差的平方和。 语法 SUMXMY2 (array_x, array_y)争论 Argument描述Required/OptionalArray_xThe first array or range of values.RequiredArray_yThe second array or range of values.Required Notes 参数应为数字或名称,数组或包…

Vite前端构建工具详解

Vite前端构建工具 Vite 是一款新兴的前端构建工具&#xff0c;它的出现带来了前端开发体验的革命性变化。本文将介绍 Vite 的基本概念和核心特性&#xff0c;并通过代码实例来演示其强大功能。 什么是 Vite&#xff1f; Vite 是由 Evan You&#xff08;Vue.js 的创始人&#x…

掌握进度管理基本指南,保证项目不延期

项目管理中的进度管理是规划、制定、控制和监控项目时间表的过程&#xff0c;确保任务和活动按时完成。 假设你是一名项目经理&#xff0c;带着团队组织一场备受瞩目的音乐节。精确的时间安排是关键。你需要确保演出者准时到达并按计划表演&#xff0c;所有供应商都准备就绪&a…

「干货」洁净室悬浮粒子计数器全部常见型号参数汇总

我们的人体工程学设计轻巧的Lighthouse手持式3016-IAQ是市场上先进的手持式粒子计数器&#xff0c;其质量浓度模式的密度约为μg/ m3。Lighthouse手持式粒子计数器最多可提供6个粒径同时计数的通道&#xff0c;可在快速&#xff0c;易于阅读的彩色触摸屏上显示累积和差分粒子计…

推荐一个可以采集众多国内外电商网站数据的工具

淘宝API 接入地址 item_get 获得淘宝商品详情item_get_pro 获得淘宝商品详情高级版item_review 获得淘宝商品评论item_fee 获得淘宝商品快递费用item_password 获得淘口令真实urlitem_list_updown 批量获得淘宝商品上下架时间seller_info 获得淘宝店铺详情item_search 按关键…

做题杂记222

文章目录 题1题2题3题4 一些较简单的题目。里面有些小点&#xff0c;稍不留意跑起来也挺费时。 题1 leak 题目描述&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*- from Crypto.Util.number import * from secret import FLAGm bytes_to_long(FLAG)def getpq(n…

新消费降温,良品铺子还能走多远?

如果时间倒退到多年前&#xff0c;杨红春应该不会料到现在良品铺子的境遇。 从2006年创立至今&#xff0c;前半段良品铺子经历了品牌升级&#xff0c;从线下发展到平台电商、社交电商&#xff0c;做APP客户端进行全渠道的营销&#xff0c;把一家曾入不敷出的小店&#xff0c;养…

echarts 轴文字内容太长导致显示不全解决方案

情况&#xff1a;Y轴内容是文字&#xff0c;内容太长可能会系那是不全。调整grid会导致短数据前的留白过于多。 解决方案&#xff1a; 方法一&#xff1a; 首先可以配置grid自适应 &#xff0c; containLabel 属性设置true &#xff08;这常用于『防止标签溢出』的场景&…

51单片机光照强度检测自动路灯开关仿真( proteus仿真+程序+报告+讲解视频)

51单片机光照强度检测自动路灯开关仿真( proteus仿真程序报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0052 讲解视频 基于51单片机的光照检测自动路灯控制仿真设计( proteus仿…

42V转5V芯片——高效率、宽压输入范围和强大输出能力

42V转5V芯片——高效率、宽压输入范围和强大输出能力 摘要&#xff1a; 42V转5V芯片是一种电源管理解决方案&#xff0c;可以将高达42V的输入电压转换为稳定的5V输出电压。该芯片以其高效率、宽压输入范围和强大的输出能力而备受关注。它具有93%的转换效率&#xff0c;能够在广…

学Python的漫画漫步进阶 -- 第十五步.访问数据库

学Python的漫画漫步进阶 -- 第十五步.访问数据库 十五、访问数据库15.1 SQLite数据库15.1.1 SQLite数据类型15.1.2 Python数据类型与SQLite数据类型的映射15.1.3 使用GUI管理工具管理SQLite数据库 15.2 数据库编程的基本操作过程15.3 sqlite3模块API15.3.1 数据库连接对象Conne…

使用Tensorboard碰到AttributeError: module ‘distutils‘ has no attribute ‘version‘

当出现这个错误时 说明 当前tensorboard的版本和你安装的pytorch版本不匹配&#xff0c;tensorboard版本太 高&#xff0c;pytorch太低。 使用conda list查看你的setuptools版本 conda list我的版本有点高68&#xff0c;所以我需要降低版本&#xff0c;使用以下命令降低版本…

解读|美创深度参与5项电信和互联网行业数据安全标准发布实施

《数据安全法》、《个人信息保护法》等法律法规的颁布实施&#xff0c;坚持安全和发展并重的原则&#xff0c;积极应对复杂严峻的安全风险与挑战&#xff0c;加速构建数据安全保障体系&#xff0c;成为电信和互联网行业重要工作。 “安全发展、标准先行”&#xff0c;标准化工作…

ATLAS 200通过PCIE 接入RK3588-EP模式

ATLAS 200 作为算理模块&#xff0c;可以作为主/协处理器接入RK3588,有两种模式&#xff1a;RC 模式和EP模式 RC模式&#xff1a;rk3588 和 ATLAS 200 可分别独立处理自身业务数据&#xff0c;不存在业务互相依赖&#xff0c;二者可通过网络等方式进行通信&#xff0c;ATLAS …

用它免费查询电商评论数据,轻松实现品牌洞察!

item_review-获得淘宝商品评论 公共参数 名称类型必须描述keyString是调用key&#xff08;注册账号获取key&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[…

Spring配置非定义的Bean

前言 在前文中&#xff0c;xml配置文件中的Bean都是我们自己定义配置的&#xff0c;例如&#xff1a;UserDaoImpl&#xff0c;UserDAO等。但是在实际开发过程中有些功能类并不是我们自己定义的&#xff0c;而是使用第三方jar包中的&#xff0c;俺么这些Bean要想让Spring进行管…

2023年PMP考试改革情况?新教材和新题型?

改革就是使用新考纲和新教材。教材由第六版变为第七版&#xff0c;这个问题也不大&#xff0c;主要是根据考纲的内容出题&#xff0c;备考学习预测敏捷项目管理内容即可。 没有出新的改为新题型的通知&#xff0c;但要随时做好题型变化的准备&#xff0c;或许题型会增加填空题…