我正在编写一个用于抓取轮胎数据的 Python 脚本。但是,当我尝试在 Raspberry Pi 上托管脚本时,遇到了分段错误问题。
该脚本旨在比较多个来源的轮胎数据。该脚本在我的 Linux 笔记本电脑上运行没有问题,但当传输到 Raspberry Pi 时,它因分段错误而崩溃。
我尝试了几个调试步骤,包括检查兼容性、更新软件以及检查代码是否存在潜在问题。尽管做出了这些努力,问题仍然存在。
为了提供更多上下文,以下是脚本功能的简要概述:
我怀疑该问题可能与 Raspberry Pi 上的内存使用或 Python 版本兼容性有关。
我正在使用 BS4(美丽汤 4)从网站上抓取数据。
#pip install -U FlagEmbedding
from FlagEmbedding import FlagModel
model = FlagModel('BAAI/bge-large-en', query_instruction_for_retrieval="Generate a representation for this sentence for retrieving related articles:")
def checkSim(sentence1, sentence2):
embeddings_1 = model.encode(sentence1)
embeddings_2 = model.encode(sentence2)
similarity = embeddings_1 @ embeddings_2.T
return similarity
这是我用于一些相似性检查的片段。也许这对于树莓派来说太重量级了?
我的主文件包含以下方法:(这是其工作原理的非常简化的版本)
DatasScrapeWebsite1(x)
DataScrapeWebsite2(x)
DataScrapeWebsite3(x)
ScrapeData():
for every row in ***.csv
data1 = DataScrapeWebsite1(row)
data2 = DataScrapeWebsite3(row)
data3 = DataScrapeWebsite3(row)
combinedData = data1+data2+data3
writeDataInCSV(CombinedData)
任何关于在 Raspberry Pi 上调试 Python 脚本中的分段错误的见解、建议或指导将不胜感激。
提前感谢您的协助
解决方案: 我尝试使用https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 结果比 FlagEmbedding 模型好得多。它更轻、更精确且易于编译。