PDF合併工具

PDF 合併 / PDF Merger

在瀏覽器內合併,不會把 PDF 上傳到伺服器。檔案很大/很多頁時會比較吃記憶體。
未選擇任何檔案
拖曳調整順序(上 → 下 = 先 → 後):

    PDF合併工具說明

    免費 PDF 合併工具(免上傳、拖曳排序、快速下載)Browser-based
    這是一個線上 PDF 合併工具,可直接在瀏覽器內將多個 PDF 合併成一個檔案:不需安裝、免註冊、免費,並支援拖曳排序與自訂輸出檔名。
    主要特色
    免上傳、隱私友善:所有處理在你的瀏覽器本機完成,不會把 PDF 上傳到伺服器。
    拖曳排序:可直接拖拉清單調整順序(上 → 下 = 先 → 後)。
    自訂檔名:輸出檔名可自由命名(預設 merged.pdf)。
    適用情境:合併報告、論文附件、合約、掃描文件、教學講義等。
    使用方式(30 秒完成)
    1
    在上方工具選取多個 PDF 檔案。
    2
    拖曳清單,調整合併順序。
    3
    (可選)輸入輸出檔名。
    4
    按「合併下載」,取得合併後 PDF。

    Free PDF Merger (No Upload, Drag to Reorder, Instant Download)
    A free online PDF merge tool that runs in your browser: no installation, no sign-up, drag-and-drop ordering, and a custom output filename.
    Key features
    No upload: processed locally in your browser (privacy-friendly).
    Drag to reorder: top → bottom = first → last.
    Custom filename: default merged.pdf.
    顯示具有 Deep learning / Python 標籤的文章。 顯示所有文章
    顯示具有 Deep learning / Python 標籤的文章。 顯示所有文章

    2025年2月17日 星期一

    深度學習模型權重檔案格式與存放目錄

     隨著深度學習模型的發展,越來越多的開發者透過 GitHubHugging Face 分享模型權重,以便其他人可以下載並加以應用。但不同的深度學習框架有各自的儲存格式與資料夾結構,因此了解這些規範能幫助我們更快速找到所需的模型。

    1. 常見的深度學習權重檔案格式

    不同的深度學習框架使用不同的檔案格式來儲存模型的權重,以下是最常見的副檔名:

    副檔名

    用途

    對應框架

    .bin

    PyTorch 模型權重 (Hugging Face)

    PyTorch

    .pth / .pt

    PyTorch 權重 (state_dict 或完整模型)

    PyTorch

    .safetensors

    更安全的 PyTorch 權重存儲格式

    PyTorch, Hugging Face

    .pb

    TensorFlow Frozen Graph

    TensorFlow

    .ckpt

    TensorFlow PyTorch Checkpoint

    TensorFlow, PyTorch

    .h5

    Keras/TensorFlow 權重

    TensorFlow, Keras

    .tflite

    TensorFlow Lite 模型

    TensorFlow Lite

    .msgpack

    Chainer 權重存儲格式

    Chainer

    .npz

    JAX NumPy 存儲格式

    JAX, NumPy

    .onnx

    ONNX 格式,方便跨框架使用

    ONNX


    當下載 Hugging Face 或 GitHub 上的模型時,可以根據這些副檔名來判斷模型的格式並選擇合適的框架來載入。


    2. 深度學習模型權重的儲存目錄

    不同的框架與專案通常會將模型權重存放在特定的目錄中,以下是最常見的結構與對應的儲存位置:

    (1) Hugging Face (transformers, diffusers, sentence-transformers 等)

    Hugging Face 的模型通常儲存在 model 相關的資料夾下,例如:

    /model
      ├── config.json
      ├── pytorch_model.bin  # PyTorch 權重
      ├── model.safetensors  # SafeTensors 權重
      ├── tf_model.h5        # TensorFlow 權重
      ├── tokenizer.json
      ├── special_tokens_map.json
    

    有些大型模型(如 LLaMA)會有多個拆分的 .bin 權重檔案:

    /model
      ├── pytorch_model-00001-of-00003.bin
      ├── pytorch_model-00002-of-00003.bin
      ├── pytorch_model-00003-of-00003.bin
      ├── tokenizer.json
      ├── config.json
    

    📌 相關目錄/model/, /weights/, /checkpoints/, /snapshots/


    (2) PyTorch(GitHub 上常見的專案結構)

    PyTorch 模型的權重通常儲存在 weightscheckpoints 目錄:

    /project_root
      ├── models/
      │   ├── model.py
      │   ├── __init__.py
      ├── weights/
      │   ├── best_model.pth
      │   ├── last_checkpoint.pth
      ├── checkpoints/
      │   ├── epoch_10.pth
      │   ├── epoch_20.pth
    

    📌 相關目錄/weights/, /checkpoints/, /models/, /logs/


    (3) TensorFlow/Keras

    TensorFlow 和 Keras 的權重通常儲存在 checkpointssaved_model 目錄:

    /project_root
      ├── checkpoints/
      │   ├── model.ckpt.index
      │   ├── model.ckpt.data-00000-of-00001
      │   ├── checkpoint
      ├── saved_model/
      │   ├── assets/
      │   ├── variables/
      │   ├── saved_model.pb
    

    📌 相關目錄/checkpoints/, /saved_model/, /logs/


    (4) ONNX(跨框架模型)

    ONNX 模型通常存放在 onnx_modelsexported_models 目錄:

    /project_root
      ├── onnx_models/
      │   ├── model.onnx
      ├── exported_models/
      │   ├── model.onnx
    

    📌 相關目錄/onnx_models/, /exported_models/


    (5) 擴散模型(Stable Diffusion, ControlNet)

    擴散模型通常使用 .safetensors.ckpt 格式,並存放在 models 目錄中:

    /stable-diffusion
      ├── models/
      │   ├── stable-diffusion-v1-4.ckpt
      │   ├── stable-diffusion-v2.safetensors
      ├── configs/
      │   ├── v1-inference.yaml
    

    📌 相關目錄/models/, /diffusion_models/


    總結

    框架/類型

    常見儲存目錄

    Hugging Face

    /model//weights//checkpoints//snapshots/

    PyTorch

    /weights//checkpoints//models//logs/

    TensorFlow

    /checkpoints//saved_model//logs/

    ONNX

    /onnx_models//exported_models/

    擴散模型

    /models//diffusion_models/


    2024年12月8日 星期日

    [文章轉貼] PyTorch GPU加速指南:如何使用CUDA進行基本操作

    文章轉自微信公眾號:阿旭演算法與機器學習

    文章原始連結:https://mp.weixin.qq.com/s/OJ1_S0b39VIr7_4kfn5Yaw

    引言

    CUDA(Compute Unified Device Architecture)是NVIDIA專有的平行運算平台和程式設計模型。使用CUDA SDK,開發人員可以利用他們的NVIDIA GPU(圖形處理單元),從而使他們能夠在通常的程式設計工作流程中引入基於GPU的平行處理能力,而不是通常的基於CPU的順序處理能力。

    隨著近年來深度學習的興起,可以看到模型訓練中涉及的各種運算,如矩陣乘法,求逆等,可以在很大程度上並行化,以獲得更好的學習表現和更快的訓練週期。因此,許多像Pytorch這樣的深度學習函式庫使用戶能夠使用一組介面和實用程式函數來利用GPU。本文將介紹在任何包含支援CUDA的GPU的系統中設定CUDA環境,並簡要介紹使用Python的Pytorch庫中提供的各種CUDA操作。

    查看GPU支援的CUDA版本

    在cmd控制台輸入navidia-smi查看GPU支援的最高CUDA版本:




    如上圖所示,最高支援的CUDA版本為12.5,版本可以向下相容。因此安裝的CUDA版本必須小於或等於12.5版本。

    安裝GPU版Pytorch

    首先,透過官方Nvidia CUDA相容性清單檢查其係統的GPU,以確保其GPU是否啟用CUDA。 Pytorch透過提供一個很好的使用者友善介面,讓您選擇作業系統和其他要求,讓CUDA安裝過程非常簡單,如下圖所示。根據我們的計算機,我們將根據下圖中給出的規格進行安裝。

    參考Pytorch的官方連結:https://pytorch.org/get-started/locally/,根據他們的電腦規格選擇規格。我們還建議在安裝後完全重新啟動系統,以確保工具包的正常運作。




    Pytorch安裝頁面截圖

    pip3 install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio=0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

    在Pytorch中開始使用CUDA

    安裝後,我們可以使用torch.cuda介面使用Pytorch與CUDA互動。我們將使用以下函數:

    文法:

    1. torch.version.cuda() :傳回目前安裝的軟體包的CUDA版本
    2. torch.cuda.is_available():如果您的系統支援CUDA,則傳回True,否則傳回False
    3. torch.cuda.current_device():傳回目前裝置的ID
    4. torch.cuda.get_device_name(device_ID):傳回ID = 'device_ID'的CUDA裝置的名稱

    代碼:

    import torch

    print(f"CUDA是否可用? {torch.cuda.is_available()}")
    print(f"当前CUDA 版本: {torch.version.cuda}")

    # Storing ID of current CUDA device
    cuda_id = torch.cuda.current_device()
    print(f"当前CUDA ID:{torch.cuda.current_device()}")

    print(f"CUDA设备名称:{torch.cuda.get_device_name(cuda_id)}")

    輸出:



    使用CUDA處理張量

    為了透過CUDA互動Pytorch張量,我們可以使用以下實用函數:

    文法:

    • tensor.device:傳回「Tensor」所在的裝置名稱
    • Tensor.to(device_name):傳回「device_name」指定的裝置上的「Tensor」的新實例:「cpu」表示CPU,「cuda」表示支援CUDA的GPU
    • tensor.cpu():將「Tensor」從目前裝置傳輸到CPU

    為了示範上述函數,我們將建立一個測試張量並執行以下操作:

    檢查張量的目前設備並應用張量操作(平方),將張量傳輸到GPU並應用相同的張量操作(平方),並比較2個設備的結果。

    代碼:

    import torch

    # Creating a test tensor
    x = torch.randint(1100, (100100))

    # Checking the device name:
    # Should return 'cpu' by default
    print(x.device)

    # Applying tensor operation
    res_cpu = x ** 2

    # Transferring tensor to GPU
    x = x.to(torch.device('cuda'))

    # Checking the device name:
    # Should return 'cuda:0'
    print(x.device)

    # Applying same tensor operation
    res_gpu = x ** 2

    # Checking the equality
    # of the two results
    assert torch.equal(res_cpu, res_gpu.cpu())

    輸出:

    cpu
    cuda : 0

    使用CUDA處理深度學習模型

    一個好的Pytorch實踐是產生與裝置無關的程式碼,因為某些系統可能無法存取GPU,只能依賴CPU,反之亦然。完成後,可以使用以下函數將任何機器學習模型傳輸到所選設備上

    用法: Model.to(device_name):

    傳回:「device_name」指定的裝置上的機器學習「Model」的新實例:「cpu」表示CPU,「cuda」表示啟用CUDA的GPU

    在本例中,我們從torchvision.models實用程式匯入預先訓練的Resnet-18模型,讀者可以使用相同的步驟將模型傳輸到所選設備。

    代碼:

    import torch
    import torchvision.models as models

    # Making the code device-agnostic
    device = 'cuda' if torch.cuda.is_available() else 'cpu'

    # Instantiating a pre-trained model
    model = models.resnet18(pretrained=True)

    # Transferring the model to a CUDA enabled GPU
    model = model.to(device)