目录
一、解决报错'HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /bert-base-uncased/resolve/main/vocab.txt (Caused by ConnectTimeoutError(, 'Connection to huggingface.co
如何从huggingface官网下载模型
二、nx.draw if cf._axstack() is None: TypeError: '_AxesStack' object is not callable
三、pandas读取表格解决遇到的问题
解决ValueError: Excel file format cannot be determined, you must specify an engine manually.
查找两个列表中相同的元素
解决but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details
解决MatplotlibDeprecationWarning: Support for FigureCanvases without a required_interactive_framework attribute was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
问题:
原因:出现此问题的原因是运行程序的服务器没有网络,却使用了未下载的bert-base-cased
模型。若该服务器没有网络,则可将bert-base-cased
模型,从huggingface.co官网下载下来。将其放在相应的文件夹即可。
(1)首先打开huggingface官网Hugging Face – The AI community building the future.,进入官网之后,点击“Models",
如果想要下载数据集,则同样的操作方法,点击”Datasets“。
(2)进入”Models“,之后,在搜索框,输入想要download的模型名称。本文示例是:bert-base-cased,
找到想要下载的模型,点击进入,出现下面的画面,
点击”Files and versions“,找到自己想要下载的文件即可。
本文的示例可根据实际需求,下载黄色框框的四个文件。也可把Files and versions文件下的文件都下载。
(3)将下载的文件,存放倒一个文件夹,建议文件夹命名为:bert-base-cased
至此,在HUggingface官网下载模型步骤完成。
报错:nx.draw报错 ‘_AxesStack‘ object is not callable
可能的原因:
这个错误是由于在绘制图形时调用了一个不可调用的对象 _AxesStack,通常这与与变量或函数名冲突有关。检查你的代码是否有其他地方使用了名为 plt 或 ax 的变量或函数,导致了该错误。
以下是可能导致问题的一些常见原因和解决方法:
在确认以上问题之后,可以尝试修改代码,并确保绘图部分没有与之前提到的问题冲突,从而避免该错误的出现。
解决方法:这是原来的代码,
pos = nx.spring_layout(G1) # 必须设定一个统一的布局,保证下面分步绘制的图的统一性,而且分步绘制时pos是一个必须参数
plt.figure(figsize=(9, 9))
plt.title('SD pair: ' + str((path[0], path[-1])) + ', Time slot: ' + str(slot) + ', #paths: ' + str(len(paths)))
nx.draw(G1, pos, with_labels=True, node_color=color_map, width=color_edge, node_size=150, font_size=12, alpha=0.6, ax=ax)
我遇到的是第二个原因:因为与 Matplotlib 的 Axes 对象(ax)冲突。
为了解决这个问题,尝试在绘制图形时明确指定 Axes 对象。在 plt.subplots() 中创建一个新的 Axes 对象,然后将其传递给 nx.draw() 函数。
pos = nx.spring_layout(G1) # 必须设定一个统一的布局,保证下面分步绘制的图的统一性,而且分步绘制时pos是一个必须参数
fig, ax = plt.subplots(figsize=(10, 8))
# plt.figure(figsize=(9, 9))
# plt.title('SD pair: ' + str((path[0], path[-1])) + ', Time slot: ' + str(slot) + ', #paths: ' + str(len(paths)))
nx.draw(G1, pos, with_labels=True, node_color=color_map, width=color_edge, node_size=150, font_size=12, alpha=0.6, ax=ax)
ax.set_title('SD pair: ' + str((path[0], path[-1])) + ', Time slot: ' + str(slot) + ', #paths: ' + str(len(paths)))
报错:我在使用python的pandas读取表格的数据,但是报错了,
import pandas as pd
file_path = 'intersection.xlsx' # r对路径进行转义,windows需要
df = pd.read_excel(file_path, header=0, usecols=[0]) # header=0表示第一行是表头,就自动去除了, 指定读取第1列
print(df)
问题:问题在于原表格格式可能有些问题。
解决:最直接的办法就是把表格的内容复制到一个自己新建的表格中,然后改成之前表格的路径,
然后再安装这个openpyxl第三方库。
pip install openpyxl
重新运行代码,
ok,问题解决。
解决:查找两个列表中相同的元素,可以把列表转为元祖/集合,进行交运算。
import pandas as pd
file_path = r'int.xlsx' # r对路径进行转义,windows需要
df = pd.read_excel(file_path, header=0, usecols=[3, 4]) # header=0表示第一行是表头,就自动去除了, 指定读取第3和4列
i, o = list(df['i']), list(df['o'])
in_links, out_links = [], []
a = set(in_links) # 转成元祖
b = set(out_links)
c = (a & b) # 集合c和b中都包含了的元素
print(a, '\n', b)
print('两个列表中相同的元素是:', list(c))
报错:
but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details
问题:xxx文件里有中文字符。
解决:在py文件的代码第一行 加上,
# -*-coding:utf8 -*-
报错:在使用pandas读取文件时,显示错误。
MatplotlibDeprecationWarning: Support for FigureCanvases without a required_interactive_framework attribute was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
问题:matplotlib3.2以后就把mpl-data分离出去了 。
解决:卸载原来的版本,安装3.1版本。
pip uninstall matplotlib # 卸载原来的版本
pip install matplotlib==3.1.1 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com # 安装3.1版本