【速寫】conda安裝(linux)

序言

昨天葉凱浩空降(全馬241),降維打擊,10分24秒斷層奪冠。

夏瀟陽10分53秒絕殺小崔10分54秒第2,小崔第3,均配都在3’30"以內,即便我是去年巔峰期也很難跑出這種水平。我就知道他去年大一剛過來5000米校運會就能跑19分02秒,顯然天賦很好,只是沒想到這么快就已經把我都拉開這么多了。

我是第4個跑回田徑場,可惜最后100米被代陳一給反超,年輕人突出一個不講武德,我還以為是艾鑫追上來。11分44秒(3’32"+3’53"+3’54"+24.5"),均配只有3’46",被前三慢了接近1分鐘,現在就算認真跑也只有這種水平咯,令人唏噓。

其實本來也就是拉亦童跑一跑的,實際上他最終也跑進了6分配,到今天已經能跑4K了,只要愿意,總還是能跑起來的,沒那么難。


題述

下面記錄的是與deepseek的對話,最近A800服務器被回收,日常不做人事,重回老破小的V100集群。之前因為集群有幾次磁盤出問題,無法寫入,home下好多自己的文件都被root權限接管,刪又刪不掉,關鍵還有一個venv也被接管,conda都remove不掉,只好重新安裝一遍conda了。

它給出的方案確實可行,我覺得是很有幫助。一個很好用的小trick,linux上nvcc -v以及nvidia -smi命令都行不通的話,ls /usr/local | grep cuda是很好用的辦法、

不得不說腰部以下的技術培訓機構差不多都可以出局了,大模型第一波打爛的就是教培的腿,盡管我還是無法去解釋模型為什么能夠如此正確,至少從表面上來看,它并不是想象中的那么機械,總還是能啟迪人做一些有趣的事情,大概算是有一點生動的吧。

值得關注的ICLR的BEST PAPER:AnyEdit: Edit Any Knowledge Encoded in Language Models,知識編輯,其實就是試圖去解釋了。

我對LLM可解釋的觀點是,目前想要解釋模型的每個參數顯然是不現實的,但至少我們應該想辦法解釋一些module,就像diffusers的U-Net的一些研究那樣,這樣的研究是有意義的。

但模型解釋又是一個悖論,它無可避免地帶來backdoor attack,安全性又受到威脅,如果我們為了安全似乎不該去解釋模型,模型越黑越好,這樣誰都不能走后門,眾生平等。

但是倘若不解釋,我們又很恐懼他的力量,不知這種力量從何而來,讓人更加感覺不安全。

令人費解。

或許應該用“他”,而不是“它”了。


文章目錄

  • 序言
    • 題述
    • 問題一:conda權限問題
      • 方案 1:請求管理員協助(推薦)
      • 方案 2:個人安裝 MiniConda(無root權限)
      • 方案 3:使用虛擬環境(如果基礎conda可用)
      • 方案 4:使用 pip --user 安裝
      • 建議:
    • 問題二:安裝conda到用戶
      • **步驟 1:下載 Anaconda 安裝腳本**
      • **步驟 2:運行安裝腳本**
      • **步驟 3:激活 Conda**
      • **步驟 4:測試 Conda**
      • **常見問題解決**
      • **卸載方法**
      • **總結**
    • 問題三:conda install v.s. pip install
      • **1. 核心原則**
      • **2. 你的包列表分析**
      • **3. 推薦安裝命令**
        • **方案 1:混合安裝(最優靈活性)**
        • **方案 2:純 Conda(穩定性優先)**
      • **4. 關鍵注意事項**
      • **5. 驗證安裝**
      • **總結建議**
    • 問題四:如何查看cuda的版本號?
      • **方法 1:通過 `nvcc` 編譯器(最準確)**
      • **方法 2:通過 `nvidia-smi`(驅動兼容版本)**
      • **方法 3:檢查 CUDA 安裝路徑**
      • **方法 4:查看動態庫版本**
      • **方法 5:通過 PyTorch 驗證(間接確認)**
      • **關鍵區別說明**
      • **常見問題**
      • **下一步建議**
    • 問題五:cuda版本已查詢
      • **1. 安裝 PyTorch(CUDA 11.3 版本)**
        • **通過 Conda 安裝(推薦)**
        • **通過 Pip 安裝**
      • **2. 驗證 PyTorch 是否能識別 GPU**
      • **3. 安裝其他依賴(vLLM 等)**
        • **vLLM**
        • **其他庫(無嚴格CUDA限制)**
      • **4. 備選方案**
      • **關鍵注意事項**
      • **附:CUDA 11.3 兼容的 PyTorch 版本參考**


問題一:conda權限問題

我在linux服務器上工作,我是一個普通user,username是caoyang,home在 /nfsshare/caoyang下面,我發現conda命令安裝在 /nfsshare/apps/anaconda3/bin/conda,即受root權限約束,我現在無法通過conda命令創建環境以及安裝package,因為權限不夠。有何解決方案?


你在使用 conda 時遇到權限問題,因為 anaconda3 目錄歸 root 所有。以下是幾種解決方案:

方案 1:請求管理員協助(推薦)

最安全的方式是聯系服務器管理員:

  1. 請求將 /nfsshare/apps/anaconda3 目錄的組權限改為可寫(例如 chmod -R g+w
  2. 或將你的用戶加入有權限的組
  3. 或為你創建軟鏈接到有權限的目錄

方案 2:個人安裝 MiniConda(無root權限)

# 下載 Miniconda(選擇適合的版本)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh# 安裝到你的home目錄
bash Miniconda3-latest-Linux-x86_64.sh -b -p /nfsshare/caoyang/miniconda3# 初始化conda
/nfsshare/caoyang/miniconda3/bin/conda init bash# 重新加載配置
source ~/.bashrc

方案 3:使用虛擬環境(如果基礎conda可用)

# 創建環境時指定有權限的目錄
conda create --prefix /nfsshare/caoyang/my_env python=3.8# 激活時指定完整路徑
conda activate /nfsshare/caoyang/my_env

方案 4:使用 pip --user 安裝

# 在已有Python環境中使用
pip install --user package_name

建議:

  1. 優先選擇方案2,完全獨立且不會影響他人
  2. 安裝后建議在 .bashrc 添加:
    export PATH="/nfsshare/caoyang/miniconda3/bin:$PATH"
    
  3. 如果空間有限,可以定期清理緩存:
    conda clean --all
    

這些方案都能避免需要root權限的問題。根據你的具體需求(是否需要特定版本的conda、是否允許自行安裝等)選擇最適合的方式。


問題二:安裝conda到用戶

如果我想給自己安裝anaconda3呢?

這里我想給自己安裝,因為像pip install可以添加--user的參數來指定安裝到用戶,但是conda似乎就不行,其實這里我也想過如果我給自己再安裝一個conda是不是會跟外面root下面的conda沖突呢?不過好像并沒有這個問題


如果你想在 Linux 服務器上以普通用戶身份(無 root 權限)安裝 Anaconda3,可以按照以下步驟操作,所有文件都會安裝到你的 home 目錄(如 /nfsshare/caoyang/),不會涉及系統目錄,因此不需要管理員權限。


步驟 1:下載 Anaconda 安裝腳本

進入你的 home 目錄,然后下載最新版 Anaconda(Linux 64 位版本):

cd ~  # 進入你的 home 目錄
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

(如果網絡較慢,可以嘗試用 curl -O 或找國內鏡像源)


步驟 2:運行安裝腳本

bash Anaconda3-2024.02-1-Linux-x86_64.sh

(替換成你下載的實際文件名)

安裝過程會詢問:

  1. Enter 查看許可協議,然后輸入 yes 同意。
  2. 安裝路徑:默認會安裝到 ~/anaconda3(即 /nfsshare/caoyang/anaconda3),直接按 Enter 確認。
    • 如果希望自定義路徑(如 /nfsshare/caoyang/my_anaconda3),可以手動輸入。
  3. 是否初始化 Conda:輸入 yes,這樣會自動將 Conda 添加到你的 ~/.bashrc

步驟 3:激活 Conda

安裝完成后,重新加載 shell 配置:

source ~/.bashrc

現在你的命令行前會出現 (base),表示 Conda 基礎環境已激活。


步驟 4:測試 Conda

conda --version  # 查看 Conda 版本
conda create -n test_env python=3.9  # 創建一個新環境
conda activate test_env  # 激活環境

如果一切正常,說明安裝成功!


常見問題解決

  1. conda 命令未找到

    • 如果安裝時沒有選擇自動初始化,需要手動將 Conda 加入 PATH。在 ~/.bashrc 末尾添加:
      export PATH="/nfsshare/caoyang/anaconda3/bin:$PATH"
      
    • 然后運行 source ~/.bashrc
  2. 磁盤空間不足

    • Anaconda 較大(約 3GB+),如果 home 目錄空間有限,可以:
      • 安裝 Miniconda(精簡版,僅包含 Conda + Python)。
      • 安裝后定期清理緩存:conda clean --all
  3. 安裝包時權限錯誤

    • 確保所有操作在你的 home 目錄下進行,不要嘗試寫入系統目錄(如 /opt/usr/local)。

卸載方法

如果想卸載,直接刪除整個 Anaconda 目錄即可:

rm -rf ~/anaconda3  # 或你自定義的安裝路徑

然后清理 ~/.bashrc 中相關的 Conda 初始化代碼。


總結

  • 優點:完全獨立,不依賴系統權限,可以自由管理環境和包。
  • 缺點:占用個人存儲空間(Anaconda 較大,Miniconda 更輕量)。
  • 推薦:如果不需要 Anaconda 的全部科學計算包,可以改用 Miniconda(安裝方式類似,但更節省空間)。

如果有其他問題,歡迎繼續提問!


問題三:conda install v.s. pip install

我已經安裝好了anaconda3,執行which conda顯示的路徑也是在我的home下的路徑。我創建了一個環境conda create --name llm312 python=3.12,現在我激活環境后conda activate llm312,我需要安裝vllm,transformers,torch,accelerate,trl,peft等一系列庫,你覺得是用conda install更適合,還是pip install更適合?


在你的情況下,選擇 conda install 還是 pip install 取決于幾個關鍵因素(尤其是涉及 GPU 加速的 PyTorch 和 vLLM)。以下是詳細分析和建議:


1. 核心原則

  • 優先用 conda install:如果 Conda 官方倉庫(defaultsconda-forge)有該包,且版本符合需求。
  • 退而用 pip install:當 Conda 沒有該包,或需要更靈活的版本控制(如 PyTorch 的特定 CUDA 版本)。

2. 你的包列表分析

包名推薦安裝方式原因說明
torchconda installConda 預編譯的 PyTorch 通常與 CUDA/cuDNN 兼容性更好(如 conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
vLLMpip installConda 無官方包,PyPI 版本更新更快(需確保 PyTorch CUDA 版本匹配)
transformers均可Conda-forge 有該包(conda install -c conda-forge transformers),但 PyPI 更新更快
acceleratepip installConda 版本可能滯后,PyPI 更新更及時
trlpip installConda 無官方包
peftpip installConda 無官方包

3. 推薦安裝命令

方案 1:混合安裝(最優靈活性)
conda activate llm312# 1. 優先用conda安裝PyTorch(確保CUDA兼容性)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia# 2. 剩余包用pip安裝
pip install vllm transformers accelerate trl peft
方案 2:純 Conda(穩定性優先)
conda install -c conda-forge pytorch torchvision torchaudio  # Conda-forge的PyTorch
conda install -c conda-forge transformers
pip install vllm accelerate trl peft  # 無法用Conda的包

4. 關鍵注意事項

  • CUDA 版本對齊

    • 運行 nvcc --versionnvidia-smi 查看服務器 CUDA 版本。
    • PyTorch 的 Conda 和 Pip 版本必須匹配該 CUDA 版本(如 pytorch-cuda=12.1pip install torch --index-url https://download.pytorch.org/whl/cu121)。
  • 依賴沖突處理

    • 如果混用 Conda 和 Pip 后出現沖突,優先用 Conda 創建干凈環境:
      conda create -n llm312_clean python=3.12
      conda activate llm312_clean
      conda install pytorch...  # 先用Conda裝核心包
      pip install ...          # 再用Pip裝剩余包
      
  • 虛擬環境隔離

    • 為不同項目創建獨立環境(如 llm312 專用于大模型),避免包沖突。

5. 驗證安裝

# 檢查PyTorch是否能識別GPU
python -c "import torch; print(torch.cuda.is_available())"# 檢查vLLM等是否可導入
python -c "from vllm import LLM; print('vLLM OK')"

總結建議

  • 推薦方案 1(混合安裝):用 Conda 管理 PyTorch 和基礎包,Pip 安裝其他庫。
  • 如果遇到問題,可以嘗試:
    • 使用 conda listpip list 對比包來源。
    • 清理緩存后重試:conda clean --all && pip cache purge

如果需要更精確的版本號(如特定 CUDA 的 PyTorch),可以告訴我服務器環境細節,我會提供定制命令。


問題四:如何查看cuda的版本號?

如何查看cuda的版本號?

此時需要確定版本號安裝torch


在 Linux 服務器上,可以通過以下幾種方法查看 CUDA 版本號(適用于 NVIDIA GPU 環境):


方法 1:通過 nvcc 編譯器(最準確)

運行以下命令查看 CUDA 編譯器版本

nvcc --version

輸出示例

nvcc: NVIDIA (R) Cuda compiler
release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

這里 CUDA 版本是 11.8

?? 如果提示 nvcc: command not found,說明 CUDA Toolkit 未安裝或未加入 PATH,嘗試其他方法。


方法 2:通過 nvidia-smi(驅動兼容版本)

運行以下命令查看 GPU 驅動支持的 CUDA 版本

nvidia-smi

輸出示例

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA A100 80G...  On   | 00000000:00:1B.0 Off |                    0 |
| N/A   35C    P0    50W / 300W |      0MiB / 81920MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

這里 CUDA Version: 12.0 表示驅動支持的最高 CUDA 版本(但實際安裝的 CUDA Toolkit 版本可能更低,需用 nvcc 確認)。


方法 3:檢查 CUDA 安裝路徑

如果 CUDA Toolkit 已安裝,可以通過路徑推斷版本:

ls /usr/local | grep cuda

輸出示例

cuda
cuda-11.8

這里 cuda-11.8 表示安裝了 CUDA 11.8。


方法 4:查看動態庫版本

cat /usr/local/cuda/version.txt  # 舊版CUDA

cat /usr/local/cuda/version.json # 新版CUDA

方法 5:通過 PyTorch 驗證(間接確認)

如果你已安裝 PyTorch,可以運行 Python 代碼檢查:

python -c "import torch; print(torch.version.cuda)"

輸出示例

11.8

關鍵區別說明

方法實際含義用途
nvcc --version實際安裝的 CUDA Toolkit 版本開發時需匹配此版本(如編譯代碼)
nvidia-smi驅動支持的最高 CUDA 版本運行 CUDA 程序時的兼容性參考
PyTorch 輸出的版本PyTorch 構建時使用的 CUDA 版本確保 PyTorch 能調用 GPU

常見問題

  1. nvccnvidia-smi 版本不一致?

    • 這是正常現象,只要 Toolkit 版本 ≤ 驅動支持的版本即可(例如 nvcc 顯示 11.8,nvidia-smi 顯示 12.0 是兼容的)。
  2. 如何安裝 nvcc

    • 需完整安裝 CUDA Toolkit(從 NVIDIA 官網下載),或讓管理員安裝。
  3. 服務器沒有 GPU 怎么辦?

    • 運行 nvidia-smi 會提示 No devices found,此時無法使用 CUDA。

下一步建議

根據查到的 CUDA 版本,安裝對應版本的 PyTorch 和 vLLM:

# 例如 CUDA 11.8
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install vllm -U  # vLLM 會自動匹配PyTorch的CUDA版本

如果需要更具體的幫助,請提供你的 nvcc --versionnvidia-smi 輸出結果!


問題五:cuda版本已查詢

我查看到cuda版本只有11.3,應該如何安裝torch?

此時我是發現直接把它上面給的conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia中的11.8改成11.3并不能找到正確的版本。


如果服務器上的 CUDA 版本是 11.3,你需要安裝與之兼容的 PyTorch 版本。以下是具體步驟和注意事項:


1. 安裝 PyTorch(CUDA 11.3 版本)

通過 Conda 安裝(推薦)
conda activate llm312  # 激活你的環境
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
  • 這會自動安裝與 CUDA 11.3 兼容的 PyTorch 版本。
  • 如果下載慢,可以嘗試添加國內鏡像源(如清華源)。
通過 Pip 安裝
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
  • cu113 表示 CUDA 11.3 的預編譯版本。

2. 驗證 PyTorch 是否能識別 GPU

安裝完成后,運行以下命令檢查:

python -c "import torch; print(f'PyTorch版本: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'CUDA版本: {torch.version.cuda}')"

期望輸出

PyTorch版本: 2.0.1+cu113  # 版本可能不同,但應有`cu113`后綴
CUDA可用: True
CUDA版本: 11.3

如果 CUDA可用: False,說明安裝的 PyTorch 與 CUDA 11.3 不匹配,需重新安裝。


3. 安裝其他依賴(vLLM 等)

由于 CUDA 11.3 較舊,部分庫(如 vLLM)可能需要更高版本的 CUDA。以下是兼容性建議:

vLLM
  • vLLM 官方要求 CUDA ≥ 11.8,但可嘗試手動安裝舊版:
    pip install vllm==0.2.0  # 指定舊版本,可能兼容CUDA 11.3
    
    如果失敗,可能需要從源碼編譯或放棄使用 vLLM。
其他庫(無嚴格CUDA限制)
pip install transformers accelerate peft trl

4. 備選方案

如果 PyTorch 或其他庫因 CUDA 11.3 限制無法運行:

  1. 請求管理員升級 CUDA(如升級到 11.8 或 12.x)。
  2. 使用 CPU 版 PyTorch(不推薦,性能極低):
    conda install pytorch torchvision torchaudio cpuonly -c pytorch
    
  3. 改用 Docker 容器(需管理員支持):
    # 使用預裝高版本CUDA的容器
    docker run --gpus all -it pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
    

關鍵注意事項

  • 嚴格匹配 CUDA 版本:PyTorch、CUDA Toolkit、NVIDIA 驅動三者需兼容。
    • 可通過 PyTorch 官方頁面 查找歷史版本。
  • 環境隔離:建議為不同 CUDA 版本創建獨立 Conda 環境。
  • 錯誤排查
    • 如果 import torch 報錯,嘗試重新安裝或檢查 LD_LIBRARY_PATH 是否包含 CUDA 庫路徑(如 /usr/local/cuda-11.3/lib64)。

附:CUDA 11.3 兼容的 PyTorch 版本參考

PyTorch 版本安裝命令(Conda)安裝命令(Pip)
1.12.1conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorchpip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
2.0.1conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 cudatoolkit=11.3 -c pytorchpip install torch==2.0.1+cu113 torchvision==0.15.2+cu113 torchaudio==2.0.2 --extra-index-url https://download.pytorch.org/whl/cu113

如有其他問題,請提供具體的錯誤信息(如 nvidia-sminvcc --version 的完整輸出),我會進一步幫你分析!

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

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

相關文章

算法題(135):唯一的雪花

審題: 本題需要我們對于每一組數據都找出最大的包裹大小 思路: 本題解析題目意思后我們可以把雪花的編號當成數組中元素的值,把包裹看成一個區間。 本質上就是讓我們找出一組數據中,所有子段中最長的子段。 方法一:暴力…

算法習題-力扣446周賽題解

算法可以調度思維,讓程序員的思維發散,找到更好的解決方案。 第一題:執行指令后的得分 題目: 給你兩個數組:instructions 和 values,數組的長度均為 n。你需要根據以下規則模擬一個過程: 從下標…

Ubuntu下MySQL的安裝

Ubuntu下MySQL的安裝 1. 查看當前操作系統版本2. 添加MySQL APT源2.1 訪問下載頁面,并下載發布包2.2 執行安裝指令2.3 安裝MySQL 3. 查看MySQL狀態4. 設置開機自啟動 1. 查看當前操作系統版本 通過命令lsb_release -a查看: 2. 添加MySQL APT源 2.1 訪問下…

航順 芯片 開發記錄 (一) 2025年4月27日19:23:32

芯片型號: HK32F030MF4P6 第一步:創建工程目錄 inc :頭文件目錄 MDK-ARM : 工程根目錄 (新建工程選擇該目錄) src :相關資源存放位置 官方函數庫相關內容 官方函數庫大致結構圖 ├─HK32F030MLib ├─CMSIS │ ├─CM0 │ │ └─Core │ │ arm_common_table…

Python 數據可視化進階:精準插入圖表到指定 Excel 工作表

Python 數據可視化進階:精準插入圖表到指定 Excel 工作表 在處理數據的過程中,我們常常需要將生成的圖表精準地插入到已存在數據的 Excel 文件的指定工作表中。借助 Python 的強大庫組合,這一操作得以高效實現。以下是經過優化和注釋補充的代…

集成方案 | Docusign + 甄零科技,賦能企業海外業務高效增長!

本文將詳細介紹 Docusign 與甄零科技的集成步驟及其效果,并通過實際應用場景來展示 Docusign 的強大集成能力,以證明 Docusign 集成功能的高效性和實用性。 甄零科技是一家專注于數字化合同管理系統的 SaaS 解決方案提供商,致力于為企業打造“…

00-算法打卡-目錄

1 數組 01-算法打卡-數組-二分查找-leetcode(704)-第一天-CSDN博客 02-算法打卡-數組-二分查找-leetcode(35)-第二天-CSDN博客 03-算法打卡-數組-二分查找-leetcode(34)-第三天_leetcode 34-CSDN博客 04-算法打卡-數組-二分查找-leetcode(69)-第四天-CSDN博客 05-算法打卡-數組…

劍指Offer(數據結構與算法面試題精講)C++版——day21

劍指Offer(數據結構與算法面試題精講)C版——day21 題目一:數據流的第k大數字題目二:出現頻率最高的k個數字題目三:和最小的k個數對附錄:源碼gitee倉庫 題目一:數據流的第k大數字 題目&#xff…

NCCL非阻塞non-blocking實現

NCCL (NVIDIA Collective Communications Library) 主要設計用于高性能的集體通信(如all-reduce、broadcast等),但其核心函數默認是阻塞式的(blocking),即函數返回時操作已完成。不過,你可以通過…

代碼隨想錄算法訓練營第60期第二十天打卡

大家好,今天我們繼續進入二叉樹的章節,二叉樹章節應該已經過半了,大家再堅持一下,那么廢話不多說,我們繼續今天的內容。 第一題對應力扣編號為235的二叉搜索樹的最近公共祖先 其實我們上次任務就接觸過了二叉樹的最近…

8.0 西門子PLC的S7通訊解析

PC與西門子PLC的S7通訊主要有如下幾個步驟: 1. TCP的三次握手(由Socket對象自動完成) 2.發送訪問請求:COTP 3. 交換通訊信息:setup Commnunication 一、發送訪問請求:COTP 比如向PLC請求+以及PLC返回響應的一個實際例子如下: 發送PLC:----> 03 00 00 16 11 E0 …

Nacos-SpringBoot 配置無法自動刷新問題排查

背景 Nacos SpringBoot版本中,提供了NacosValue注解,支持控制臺修改值時,自動刷新,但是今天遇見了無法自動刷新的問題。 環境 SpringBoot 2.2.x nacos-client:2.1.0 nacos-config-spring-boot-starter:0…

JAVA | 聚焦 OutOfMemoryError 異常

個人主頁 文章專欄 在正文開始前,我想多說幾句,也就是吐苦水吧…最近這段時間一直想寫點東西,停下來反思思考一下。 心中萬言,真正執筆時又不知先寫些什么。通常這個時候,我都會隨便寫寫,文風極像散文&…

基于開源技術體系的品牌賽道力重構:AI智能名片與S2B2C商城小程序源碼驅動的品類創新機制研究

摘要:在數字經濟與實體經濟深度融合的背景下,品牌競爭已從單一產品力競爭轉向生態化、技術化的賽道力競爭。本文以開源AI大模型、AI智能名片及S2B2C商城小程序源碼為核心技術載體,構建"技術賦能-場景貫通-生態協同"三維分析框架&am…

【vue3】購物車實戰:從狀態管理到用戶體驗的全流程實現

在電商項目中,購物車是核心功能之一,需要兼顧數據一致性、用戶體驗和邏輯復雜度。 本文結合 Vue3 Pinia 技術棧,詳細講解如何實現一個高效且易用的購物車系統,重點剖析 添加購物車 和 頭部購物車預覽 的核心邏輯與實現細節。 一…

卡洛詩西餐廳,以“中式西餐”為核心戰略

在餐飲市場的激烈競爭中,“本土化”是許多國際餐飲品牌難以跨越的鴻溝——要么因水土不服黯然退場,要么因過度妥協失去特色。然而,卡洛詩以“中式西餐”為核心戰略,將西餐與國內飲食文化深度融合,不僅破解了西餐本土化…

28-29【動手學深度學習】批量歸一化 + ResNet

1. 批量歸一化 1.1 原理 當神經網絡比較深的時候會發現:數據在下面,損失函數在上面,這樣會出現什么問題? 正向傳遞的時候,數據是從下往上一步一步往上傳遞反向傳遞的時候,數據是從上面往下傳遞&#xff0…

【Linux網絡】Http服務優化 - 增加請求后綴、狀態碼描述、重定向、自動跳轉及注冊多功能服務

📢博客主頁:https://blog.csdn.net/2301_779549673 📢博客倉庫:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正! &…

AIGC(生成式AI)試用 32 -- AI做軟件程序測試 3

總結之前的AI做程序測試過程,試圖優化提問方式,整合完成的AI程序測試提問,探索更多可能的AI測試 AIGC(生成式AI)試用 30 -- AI做軟件程序測試 1 AIGC(生成式AI)試用 31 -- AI做軟件程序…

C語言實現迪杰斯特拉算法進行路徑規劃

使用C語言實現迪杰斯特拉算法進行路徑規劃 迪杰斯特拉算法是一種用于尋找加權圖中最短路徑的經典算法。它特別適合用于計算從一個起點到其他所有節點的最短路徑,前提是圖中的邊權重為非負數。 一、迪杰斯特拉算法的基本原理 迪杰斯特拉算法的核心思想是“貪心法”…