批量處理多個模型的預測任務

#!/bin/bash# 檢查是否傳入必要的參數,若未傳入參數則打印用法并退出
if [ "$#" -lt 1 ]; thenecho "用法: $0 <file_path>"echo "示例: $0 /home/aistudio/work/PaddleSeg/city/cityscapes_urls_extracted.txt"exit 1
fi# 讀取命令行傳入的文件路徑作為第一個參數
file_path="$1"
# 設置圖片路徑(用于預測時加載圖像)
image_path="/home/aistudio/work/PaddleSeg/val"
# 設置結果保存路徑
save_dir="/home/aistudio/work/PaddleSeg/output1"
# 設置配置文件基礎路徑
config_base_dir="/home/aistudio/work/PaddleSeg/configs"# 檢查輸入的文件路徑是否存在,如果文件不存在則打印錯誤并退出
if [ ! -f "$file_path" ]; thenecho "文件 $file_path 不存在"exit 1
fi# 獲取 configs 目錄下的所有子文件夾(每個文件夾的名字作為模型核心名稱)
for model_core_name in $(ls -d $config_base_dir/*/); do# 提取文件夾名稱作為模型核心名稱model_core_name=$(basename $model_core_name)# 輸出當前模型核心名稱,幫助調試echo "模型核心名稱: $model_core_name"# 遍歷指定的文件($file_path),讀取每一行內容while IFS= read -r url; do# 檢查該行是否包含 "model.pdparams",以確認是有效的模型路徑if [[ "$url" == *"model.pdparams" ]]; then# 提取模型完整名稱(即倒數第一層目錄名作為模型名稱)model_full_name=$(basename "$(dirname "$url")")# 根據模型核心名稱和完整名稱,組合出配置文件的路徑config_path="${config_base_dir}/${model_core_name}/${model_full_name}.yml"# 檢查對應的配置文件是否存在,如果不存在則跳過當前模型if [ ! -f "$config_path" ]; thenecho "配置文件 $config_path 不存在"continuefi# 生成預測命令,執行預測操作command="python predict.py \--config $config_path \--model_path $url \--image_path $image_path \--save_dir $save_dir/$model_full_name"# 打印生成的命令,方便調試echo "執行命令: $command"# 執行預測命令eval $command || { echo "命令執行失敗: $command"; exit 1; }# 輸出空行,便于分隔每個模型的預測結果echo ""fidone < "$file_path"
done

代碼邏輯及注釋說明:

  1. 檢查輸入參數

    • 腳本首先檢查是否傳入了正確的參數。如果沒有傳入參數(即 "$#" 小于 1),則會提示用法并退出。
  2. 設置路徑變量

    • file_path:傳入的包含模型路徑的文件。
    • image_path:用于預測的圖像路徑。
    • save_dir:存放預測結果的文件夾路徑。
    • config_base_dir:存放配置文件的基礎路徑。
  3. 檢查文件是否存在

    • 腳本會檢查輸入的文件路徑($file_path)是否存在。如果不存在,則會輸出錯誤并退出。
  4. 遍歷配置文件夾

    • 使用 ls -d $config_base_dir/*/ 獲取 configs 目錄下的所有子文件夾(每個文件夾代表一個模型核心名稱)。例如,如果文件夾名為 ginet,則模型核心名稱就是 ginet
    • 對每個模型核心名稱(文件夾名),腳本都會提取該模型的完整名稱,并根據模型路徑和完整名稱生成相應的配置文件路徑。
  5. 讀取模型路徑并執行預測

    • 腳本會讀取輸入文件($file_path)中的每一行,檢查每行是否是以 model.pdparams 結尾的有效模型路徑。
    • 對于有效路徑,生成對應的配置文件路徑,組合成預測命令,并執行該命令。
  6. 生成并執行預測命令

    • 使用 eval 執行構建的 Python 命令。該命令會調用 predict.py 腳本,傳入配置文件、模型路徑、圖像路徑等參數進行預測。
    • 如果命令執行失敗,腳本會打印錯誤信息并退出。
  7. 輸出調試信息

    • 在執行命令前,會輸出當前的預測命令,幫助調試。
    • 每個模型的預測執行完成后,輸出一個空行以便區分不同模型的結果。

適用場景:

此腳本適用于批量處理多個模型的預測任務。每個模型的配置文件、模型文件和其他參數都會從輸入的文件和目錄結構中自動生成,適合需要自動化批量預測的場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67798.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67798.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67798.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【LLM-agent】(task4)搜索引擎Agent

note 新增工具&#xff1a;搜索引擎Agent 文章目錄 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加載環境變量 load_dotenv() # 初始化變量 base_url None chat_model None api_key None# 使用with語句打開文件&#xf…

【自然語言處理(NLP)】基于Transformer架構的預訓練語言模型:BERT 訓練之數據集處理、訓練代碼實現

文章目錄 介紹BERT 訓練之數據集處理BERT 原理及模型代碼實現數據集處理導包加載數據生成下一句預測任務的數據從段落中獲取nsp數據生成遮蔽語言模型任務的數據從token中獲取mlm數據將文本轉換為預訓練數據集創建Dataset加載WikiText-2數據集 BERT 訓練代碼實現導包加載數據構建…

LeetCode435周賽T2貪心

題目描述 給你一個由字符 N、S、E 和 W 組成的字符串 s&#xff0c;其中 s[i] 表示在無限網格中的移動操作&#xff1a; N&#xff1a;向北移動 1 個單位。S&#xff1a;向南移動 1 個單位。E&#xff1a;向東移動 1 個單位。W&#xff1a;向西移動 1 個單位。 初始時&#…

【Numpy核心編程攻略:Python數據處理、分析詳解與科學計算】2.5 高級索引應用:圖像處理中的區域提取

2.5 高級索引應用&#xff1a;圖像處理中的區域提取 目錄/提綱 #mermaid-svg-BI09xc20YqcpUam7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BI09xc20YqcpUam7 .error-icon{fill:#552222;}#mermaid-svg-BI09xc20…

ubuntu直接運行arm環境qemu-arm-static

qemu-arm-static 嵌入式開發有時會在ARM設備上使用ubuntu文件系統。開發者常常會面臨這樣一個問題&#xff0c;想預先交叉編譯并安裝一些應用程序&#xff0c;但是交叉編譯的環境配置以及依賴包的安裝十分繁瑣&#xff0c;并且容易出錯。想直接在目標板上進行編譯和安裝&#x…

通過Redisson構建延時隊列并實現注解式消費

目錄 一、序言二、延遲隊列實現1、Redisson延時消息監聽注解和消息體2、Redisson延時消息發布器3、Redisson延時消息監聽處理器 三、測試用例四、結語 一、序言 兩個月前接了一個4萬的私活&#xff0c;做一個線上商城小程序&#xff0c;在交易過程中不可避免的一個問題就是用戶…

MVC 文件夾:架構之美與實際應用

MVC 文件夾:架構之美與實際應用 引言 MVC(Model-View-Controller)是一種設計模式,它將應用程序分為三個核心組件:模型(Model)、視圖(View)和控制器(Controller)。這種架構模式不僅提高了代碼的可維護性和可擴展性,而且使得開發流程更加清晰。本文將深入探討MVC文…

【PyQt】lambda函數,實現動態傳遞參數

為什么需要 lambda&#xff1f; 在 PyQt5 中&#xff0c;clicked 信號默認會傳遞一個布爾值&#xff08;表示按鈕是否被選中&#xff09;。如果我們希望將按鈕的文本內容傳遞給槽函數&#xff0c;需要通過 lambda 函數顯式傳遞參數。 這樣可以實現將按鈕內容傳遞給槽函數&…

pytorch深度Q網絡

人工智能例子匯總&#xff1a;AI常見的算法和例子-CSDN博客 DQN 引入了深度神經網絡來近似Q函數&#xff0c;解決了傳統Q-learning在處理高維狀態空間時的瓶頸&#xff0c;尤其是在像 Atari 游戲這樣的復雜環境中。DQN的核心思想是使用神經網絡 Q(s,a;θ)Q(s, a; \theta)Q(s,…

Baklib構建高效協同的基于云的內容中臺解決方案

內容概要 隨著云計算技術的飛速發展&#xff0c;內容管理的方式也在不斷演變。企業面臨著如何在數字化轉型過程中高效管理和協同處理內容的新挑戰。為應對這些挑戰&#xff0c;引入基于云的內容中臺解決方案顯得尤為重要。 Baklib作為創新型解決方案提供商&#xff0c;致力于…

DeepSeek-R1 論文. Reinforcement Learning 通過強化學習激勵大型語言模型的推理能力

論文鏈接&#xff1a; [2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 實在太長&#xff0c;自行扔到 Model 里&#xff0c;去翻譯去提問吧。 工作原理&#xff1a; 主要技術&#xff0c;就是訓練出一些專有用途小模型&…

C++泛型編程指南03-CTAD

文章目錄 C17 自定義類型推斷指引&#xff08;CTAD&#xff09;深度解析一、基礎概念1. 核心作用2. 工作原理 二、標準庫中的 CTAD 應用1. 容器類型推導2. 智能指針推導3. 元組類型推導 三、自定義推導指引語法1. 基本語法結構2. 典型應用場景 四、推導指引設計模式1. 迭代器范…

deepseek+vscode自動化測試腳本生成

近幾日Deepseek大火,我這里也嘗試了一下,確實很強。而目前vscode的AI toolkit插件也已經集成了deepseek R1,這里就介紹下在vscode中利用deepseek幫助我們完成自動化測試腳本的實踐分享 安裝AI ToolKit并啟用Deepseek 微軟官方提供了一個針對AI輔助的插件,也就是 AI Toolk…

電介質超表面中指定渦旋的非線性生成

渦旋光束在眾多領域具有重要應用&#xff0c;但傳統光學器件產生渦旋光束的方式限制了其在集成系統中的應用。超表面的出現為渦旋光束的產生帶來了新的可能性&#xff0c;尤其是在非線性領域&#xff0c;盡管近些年來已經有一些研究&#xff0c;但仍存在諸多問題&#xff0c;如…

基于Springboot+mybatis+mysql+html圖書管理系統2

基于Springbootmybatismysqlhtml圖書管理系統2 一、系統介紹二、功能展示1.用戶登陸2.用戶主頁3.圖書查詢4.還書5.個人信息修改6.圖書管理&#xff08;管理員&#xff09;7.學生管理&#xff08;管理員&#xff09;8.廢除記錄&#xff08;管理員&#xff09; 三、數據庫四、其它…

重構字符串(767)

767. 重構字符串 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:string reorganizeString(string s){string res;//因為1 < s.length < 500 &#xff0c; uint64_t 類型足夠uint16_t n s.size();if (n 0) {return res;}unordere…

本地部署DeepSeek方法

本地部署完成后的效果如下圖&#xff0c;整體與chatgpt類似&#xff0c;只是模型在本地推理。 我們在本地部署主要使用兩個工具&#xff1a; ollamaopen-webui ollama是在本地管理和運行大模型的工具&#xff0c;可以直接在terminal里和大模型對話。open-webui是提供一個類…

游戲引擎 Unity - Unity 啟動(下載 Unity Editor、生成 Unity Personal Edition 許可證)

Unity Unity 首次發布于 2005 年&#xff0c;屬于 Unity Technologies Unity 使用的開發技術有&#xff1a;C# Unity 的適用平臺&#xff1a;PC、主機、移動設備、VR / AR、Web 等 Unity 的適用領域&#xff1a;開發中等畫質中小型項目 Unity 適合初學者或需要快速上手的開…

【開源免費】基于Vue和SpringBoot的公寓報修管理系統(附論文)

本文項目編號 T 186 &#xff0c;文末自助獲取源碼 \color{red}{T186&#xff0c;文末自助獲取源碼} T186&#xff0c;文末自助獲取源碼 目錄 一、系統介紹二、數據庫設計三、配套教程3.1 啟動教程3.2 講解視頻3.3 二次開發教程 四、功能截圖五、文案資料5.1 選題背景5.2 國內…

Haskell語言的多線程編程

Haskell語言的多線程編程 Haskell是一種基于函數式編程范式的編程語言&#xff0c;以其強大的類型系統和懶惰求值著稱。近年來&#xff0c;隨著多核處理器的發展&#xff0c;多線程編程變得日益重要。雖然Haskell最初并不是為了多線程而設計&#xff0c;但它的設計理念和工具集…