【PyTorch項目實戰】CycleGAN:無需成對訓練樣本,支持跨領域圖像風格遷移

文章目錄

  • 一、風格遷移模型🎨
    • 1、發展時間線
    • 2、分類與優缺點
    • 3、選擇建議
    • 4、HuggingFace Demo(instruct-pix2pix) —— 在線測試
  • 二、論文簡讀
    • (1)FastStyleTransfer(快速風格遷移,Johnson et al., 2016)
      • 1、原理概述
      • 2、特點與優勢
      • 3、 局限性
    • (2)AdaIN(自適應實例規范化,Huang & Belongie, 2017)
      • 1、原理概述
      • 2、特點與優勢
      • 3、局限性
    • (3)CycleGAN:基于循環一致性的無配對圖像風格遷移方法(Zhu et al., 2017)
      • 1、原理概述
      • 2、特點與優勢
      • 3、局限性
      • 4、適用與非適用場景
      • 5、實戰建議
  • 三、CycleGAN:項目實戰
    • 1、環境配置
    • 2、使用CPU模式而非GPU(默認強制使用,有GPU跳過該步驟)
    • 3、文件配置
      • (1)數據集下載
      • (2)模型下載
    • 4、代碼測試(Test a CycleGAN model)
    • 備注1:CycleGAN 本質上無法保證 " 主體不變、僅變風格 "
    • 備注2:白 / 黑背景將使得模型失去遷移方向

一、風格遷移模型🎨

1、發展時間線

年份模型/方法發布者/會議技術關鍵詞關鍵貢獻或備注
2015NeuralStyleTransferGatys等(CVPR)Gram矩陣、VGG特征、優化迭代開創性風格遷移方法,掀起研究熱潮
2016FastStyleTransferJohnson等(ECCV)感知損失、快速前向網絡實現實時風格遷移,提升實用性
2017AdaINHuang等(NeurIPS)自適應實例歸一化任意風格遷移新范式,靈活性強
2017WCTLi等(CVPR)白化與著色變換(WCT)無需訓練,基于特征統計
2017Pix2PixIsola等(CVPR)條件GAN、成對圖像翻譯開創成對圖像翻譯標準方法
2017CycleGANZhu等(ICCV)循環一致性、無監督圖像翻譯打破成對限制,支持任意風格遷移
2018MUNITHuang等(ECCV)多模態風格遷移、潛變量解耦實現多風格切換
2019UGATITKim等(ICLR)注意力機制、可控無監督遷移強化結構保持,適用于面部、插畫等
2020CUTPark等(ECCV)對比學習、PatchNCE損失改進CycleGAN,提升圖像結構保持能力
2022StableDiffusionCompVis等文圖擴散模型、文本控制圖文創作與藝術風格遷移
2023DALL·E2OpenAICLIP引導圖文生成、多模態優化多樣化風格圖生成利器,適合設計類應用

MUNIT:多模態無監督圖像到圖像翻譯 —— https://github.com/nvlabs/MUNIT
在這里插入圖片描述

2、分類與優缺點

類別代表模型特點描述優點局限性
統計特征匹配類NeuralStyleTransfer、AdaIN、WCT特征層統計參數(均值/方差)匹配快速、無需訓練、可實時應用風格粒度不可控,結構保持差
成對監督類Pix2Pix條件GAN訓練,有明確輸入輸出成對精確控制、結構保持好需成對樣本,任務限制大
無監督圖像翻譯類CycleGAN、DualGAN、CUT循環一致性、對比學習等實現非配對遷移無需配對,適用于多風格切換訓練穩定性差,細節模糊,存在模式崩潰風險
結構保持增強類UGATIT、MUNIT、DRIT引入注意力或語義模塊,增強結構和可控性支持局部顯著風格、結構更完整推理慢,訓練復雜,對參數敏感
跨模態生成類StableDiffusion、DALL·E、ControlNet文本控制圖像風格,生成類大模型控制力強、創意表達能力強結構不可控、不適用于精確圖像風格遷移

3、選擇建議

使用需求推薦模型是否需訓練推理速度結構保持風格質量適用建議
快速預覽風格效果AdaIN、WCT★★★★★★★★★★★適合濾鏡類APP、快速嘗試多種風格
批量生成某一固定風格FastStyleTransfer★★★★★★★★★★★★一次訓練后多圖高效渲染
精確圖?圖風格轉換Pix2Pix★★★★★★★★★★★★數據成對充分時優選
任意圖像風格遷移CycleGAN、CUT★★★★★★★★★★★適合插畫?實拍等風格轉換
多風格自由切換MUNIT、DRIT、StyleGAN★★★★★★★★★★風格交互應用場景,如頭像生成、社交內容等
文本描述控制圖像風格StableDiffusion、DALL·E★★★★★★★★★創意類內容創作,如封面設計、藝術生成等

4、HuggingFace Demo(instruct-pix2pix) —— 在線測試

https://huggingface.co/spaces/timbrooks/instruct-pix2pix

  • 輸入:任意照片 + 文字指令(如 “Turn it into a cyberpunk style”)
  • 特點:無需風格圖,直接通過文本描述控制風格。
  • 超參數:
    • Text CFG:7.5(默認)
    • Image CFG:1.5(默認)
    • 備注:權重越大,越傾向于哪一方!
  • 輸入圖像的一般要求
    • 格式:常見的圖片格式(如 .jpg, .png, .webp)。
    • 分辨率:建議 512x512 ~ 1024x1024 像素(太高可能被自動壓縮)。
    • 內容清晰:避免過度模糊、噪點或強壓縮偽影。
    • 主體明確:風格遷移對主體(如人像、建筑、風景)效果更好。

二、論文簡讀

(1)FastStyleTransfer(快速風格遷移,Johnson et al., 2016)

快速神經風格:將一張圖片的內容與另一張圖片的風格進行混合

  • https://github.com/pytorch/examples/tree/main/fast_neural_style
  • https://github.com/jcjohnson/fast-neural-style

在這里插入圖片描述

1、原理概述

FastStyleTransfer 是一種利用感知損失(Perceptual Loss)實現的快速圖像風格遷移方法。其基本結構為一個前饋神經網絡,在訓練階段學習將任意圖像轉換為特定風格的圖像。訓練完成后,該網絡在推理階段可實現毫秒級圖像風格轉換。

網絡結構

  • 輸入:內容圖像(如渲染圖);
  • 輸出:風格化圖像;
  • 損失函數基于 VGG 特征提取器:
    • 內容損失:保持原始圖像的語義結構;
    • 風格損失:匹配目標風格圖的Gram矩陣特征;
    • 總變差損失(TV loss):增強圖像平滑性。

2、特點與優勢

優勢點說明
? 推理速度快一次前向傳播即可完成風格遷移,0.05~0.2秒/張,適合實時應用。
? 不改變圖像結構網絡學習內容保留與風格分離,結果結構清晰。
? 工程部署簡單可導出為TorchScript或ONNX,部署于邊緣設備或網頁端。

3、 局限性

局限點描述
? 每種風格需單獨訓練一個模型若需支持多種風格,需為每種風格圖單獨訓練一次,增加存儲與訓練成本。
? 風格靈活性較低風格結果相對固定,無法在推理階段動態調整風格程度或更換風格圖像。

(2)AdaIN(自適應實例規范化,Huang & Belongie, 2017)

AdaIN:通過自適應實例規范化,實現實時任意風格轉換

  • https://github.com/naoto0804/pytorch-AdaIN
  • https://github.com/xunhuang1995/AdaIN-style

在這里插入圖片描述

1、原理概述

AdaIN 是一種任意風格圖像遷移方法,通過在推理階段動態注入風格圖像特征統計信息,實現任意風格的實時轉換。核心思想是:將內容圖像的特征歸一化后,重新賦予目標風格圖的均值與方差,從而在不改變內容結構的前提下完成風格映射。

關鍵模塊:Adaptive Instance Normalization
設內容特征為 fc,風格特征為 fs,則:
AdaIN ( f c , f s ) = σ ( f s ) ? ( f c ? μ ( f c ) σ ( f c ) ) + μ ( f s ) \text{AdaIN}(f_c, f_s) = \sigma(f_s) \cdot \left( \frac{f_c - \mu(f_c)}{\sigma(f_c)} \right) + \mu(f_s) AdaIN(fc?,fs?)=σ(fs?)?(σ(fc?)fc??μ(fc?)?)+μ(fs?)
其中:
μ:均值
σ:標準差

2、特點與優勢

局限點描述
? 風格僅體現顏色與紋理分布不適合高度結構化或抽象風格(如某些插畫或2.5D卡通),表現不如GAN類方法。
? 對抗性質量不及GAN相比CycleGAN等對抗訓練方法,輸出真實感稍弱,細節較平滑。

3、局限性

局限點描述
? 風格僅體現顏色與紋理分布不適合高度結構化或抽象風格(如某些插畫或2.5D卡通),表現不如GAN類方法。
? 對抗性質量不及GAN相比CycleGAN等對抗訓練方法,輸出真實感稍弱,細節較平滑。

(3)CycleGAN:基于循環一致性的無配對圖像風格遷移方法(Zhu et al., 2017)

  • 論文地址:https://junyanz.github.io/CycleGAN/
  • 開源地址:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

在這里插入圖片描述

1、原理概述

CycleGAN是一種用于圖像到圖像轉換(Image-to-Image Translation)任務的生成對抗網絡(GAN)框架,具有無需成對訓練樣本,學習兩個域之間的映射關系,實現跨領域圖像轉換。其核心思想是通過循環一致性損失(Cycle Consistency Loss) 約束風格遷移的可逆性,從而在保留圖像結構的同時實現風格映射。

基本架構:CycleGAN包括兩個生成器(GA→B 和 GB→A)與兩個判別器(DA 和 DB
其中:

  • GA→B:將A域圖像(如照片)轉換為B域圖像(如油畫);例如:照片 → 油畫、夏天 → 冬天、馬 → 斑馬
  • GB→A:實現B→A的反向轉換;例如:照片 → 油畫、夏天 → 冬天、馬 → 斑馬(反著)
  • DA 與 DB:分別判別生成圖像是否屬于對應域的真實樣本。

循環一致性損失(Cycle Loss)

  • A → B → A ≈ A
  • B → A → B ≈ B

這種結構使得即使兩個領域之間沒有一一對應的圖像對,模型也能學到結構穩定的風格映射。

2、特點與優勢

優勢點說明
? 無需配對訓練樣本相較于Pix2Pix等方法,CycleGAN僅依賴兩個領域的非配對圖像,降低了數據準備難度。
? 結構保持能力強通過循環損失保持圖像內容結構不變,適合結構穩定但風格差異大的任務(如風景?油畫)。
? 具備雙向映射能力同時學習A→B和B→A轉換路徑,提升模型魯棒性與泛化能力。
? 可生成較高質量圖像相比簡單風格遷移模型,CycleGAN在圖像真實感、邊緣保留等方面表現更優。

3、局限性

局限點描述
? 需大量非配對數據雖不要求成對圖像,但仍需大量覆蓋多樣風格的兩域圖像(例如上千張A域圖像+上千張B域圖像)才能訓練有效模型。
? 單圖像訓練效果差如果僅提供一張風格圖像,模型難以提取穩定風格特征,易過擬合或風格失真。
? 推理依賴訓練域測試時輸入圖像必須來自訓練時分布相近的領域,否則模型輸出不可控、泛化能力弱。
? 訓練耗時且資源密集通常需數小時至數天GPU訓練時間,不適合快速測試或小樣本部署。

4、適用與非適用場景

? 適用場景

  • 領域之間存在明顯風格差異,但結構內容一致(如:實拍照片?渲染圖、風景?油畫)。
  • 具備大規模非配對訓練數據,可以覆蓋目標領域的主要特征分布。
  • 需要高質量風格映射效果,用于研究、藝術生成等精度要求較高任務。

? 非適用場景

  • 僅有1~5張風格參考圖像,無法支撐有效訓練。
  • 風格域差異較抽象或領域跨度過大(如素描?動漫、照片?2.5D手繪)時,CycleGAN輸出容易失控。
  • 對訓練時長、部署資源有限制,如實時應用、比賽時間緊張等場合。

5、實戰建議

在如 “ 渲染圖?2.5D插畫風格 ” 的圖像風格互換場景中,若僅有少量參考圖或時間限制較大,建議優先采用無需訓練的通用風格遷移方法(如AdaIN或FastStyleTransfer)。而CycleGAN更適用于訓練資源充足、可離線生成高質量雙向風格映射的情況。

三、CycleGAN:項目實戰

1、環境配置

conda create -n CycleGAN38 python=3.8 -y
conda activate CycleGAN38
pip install requirements.txt

2、使用CPU模式而非GPU(默認強制使用,有GPU跳過該步驟)

(模型強制使用GPU)如果你沒有 GPU 或者 CUDA 配置不正確,可以修改代碼以強制使用 CPU:

(1)在 base_options.py 文件中

torch.cuda.set_device(opt.gpu_ids[0])
######################################################1)將其修改為:
######################################################
# 如果沒有 GPU,可直接強制使用 CPU
if torch.cuda.is_available() and len(opt.gpu_ids) > 0:torch.cuda.set_device(opt.gpu_ids[0])
else:device = torch.device("cpu")  # 強制使用 CPUprint("No GPU detected, using CPU instead.")# state_dict = torch.load(load_path, map_location=str(self.device))
######################################################2)將其修改為:
######################################################
if self.device.type == 'cpu':state_dict = torch.load(load_path, map_location=lambda storage, loc: storage)
else:state_dict = torch.load(load_path, map_location=self.device)

(2)在 base_options.py 文件中

self.device = torch.device('cuda:{}'.format(self.gpu_ids[0])) if self.gpu_ids else torch.device('cpu')  # get device name: CPU or GPU
######################################################
將其修改為:
######################################################
# self.device = torch.device('cuda:{}'.format(self.gpu_ids[0])) if self.gpu_ids and self.gpu_ids[0] != -1 else torch.device('cpu')
if self.gpu_ids and self.gpu_ids[0] != -1 and torch.cuda.is_available(): # 增加了 torch.cuda.is_available() 的檢查self.device = torch.device('cuda:{}'.format(self.gpu_ids[0]))
else: # 如果沒有指定有效 GPU 或 CUDA 不可用,則強制使用 CPUself.device = torch.device('cpu')

(3)在 networks.py 文件中

def init_net(net, init_type='normal', init_gain=0.02, gpu_ids=[]):# if len(gpu_ids) > 0:#     assert(torch.cuda.is_available())#     net.to(gpu_ids[0])#     net = torch.nn.DataParallel(net, gpu_ids)  # multi-GPUs# init_weights(net, init_type, init_gain=init_gain)# return net######################################################將其修改為:####################################################### Determine the deviceif len(gpu_ids) > 0 and gpu_ids[0] != -1 and torch.cuda.is_available(): # 修改了這里的條件判斷device = torch.device('cuda:{}'.format(gpu_ids[0]))net.to(device)if len(gpu_ids) > 1: # Only use DataParallel if multiple GPUs are specifiednet = torch.nn.DataParallel(net, gpu_ids)  # multi-GPUselse: # 增加了 else 分支來處理 CPU 情況device = torch.device('cpu')net.to(device)init_weights(net, init_type, init_gain=init_gain)return net

3、文件配置

地址:Index of /cyclegan
在這里插入圖片描述

github中提供的下載教程:
在這里插入圖片描述
bash是linux命令;
(1)在windows系統中,使用記事本打開文件pytorch-CycleGAN-and-pix2pix/datasets/download_pix2pix_dataset.sh;
(2)定位URL,打開http://efrosgans.eecs.berkeley.edu/cyclegan/datasets/;
(3)下載數據集ae_photos.zip,并解壓到pytorch-CycleGAN-and-pix2pix/datasets文件夾下;

(1)數據集下載

cyclegan地址:http://efrosgans.eecs.berkeley.edu/cyclegan/datasets/

(2)模型下載

cyclegan地址:http://efrosgans.eecs.berkeley.edu/cyclegan/pretrained_models/

4、代碼測試(Test a CycleGAN model)

以下是兩條test.py命令的參數逐項詳細解析(詳細請看test.py說明),用于在復現CycleGAN模型時正確理解和自定義測試流程:

? 命令1:雙向測試 CycleGAN(A→B和B→A)
python test.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan參數	含義--dataroot ./datasets/maps	指定數據集根目錄,CycleGAN會自動尋找testA/和testB/兩個子目錄,分別代表兩個方向的測試數據--name maps_cyclegan	模型名稱,對應于checkpoints/maps_cyclegan路徑下保存的訓練模型參數(G_A、G_B等)--model cycle_gan	指定模型類型為cycle_gan,表示使用CycleGAN的生成器G_A(A→B)和G_B(B→A)做雙向翻譯測試? 命令2:僅單向測試(如horse→zebra)
python test.py --dataroot datasets/horse2zebra/testA --name horse2zebra_pretrained --model test --no_dropout參數	含義--dataroot datasets/horse2zebra/testA	測試集只提供testA/(源域圖像),不需要testB/,只做單向A→B映射--name horse2zebra_pretrained	指定模型名為horse2zebra_pretrained,將從checkpoints/horse2zebra_pretrained中加載訓練好的G_A模型--model test	指定測試模式為單向測試,默認只使用G_A(源域→目標域),不會進行Cycle Consistency或B→A映射--no_dropout	禁用Dropout(測試階段通常不使用Dropout,結果更加穩定)📁 輸出文件默認保存路徑:./results/horse2zebra_pretrained/test_latest/images/

備注1:CycleGAN 本質上無法保證 " 主體不變、僅變風格 "

CycleGAN 所使用的是無監督圖像到圖像轉換框架,其本質是:在不使用成對圖像監督的前提下,學習兩個域之間的整體映射關系,而不是單獨控制前景或背景。

備注2:白 / 黑背景將使得模型失去遷移方向

原因如下:

  • CycleGAN不具備語義理解能力
    它依靠像素分布的統計特征進行映射;
    全白/黑背景的統計特征過于簡單,模型難以提取有用信息;
    如果背景占圖像面積過大,模型會將背景視作主體的一部分。
  • 背景過于“干凈”,擾亂遷移邏輯
    模型的遷移邏輯通常依賴局部紋理;
    純背景導致輸入特征“太干凈”,而輸出風格域中的背景往往存在紋理或漸變,模型會“強行添加內容”;
  • 目標結構稀疏,易丟失原圖語義
    CycleGAN 的生成器為全卷積結構,弱語義感知;
    當前景小、背景大時,模型會偏向“遷移背景”,導致主題模糊。

對于CycleGAN:

  • 白/黑背景不是“無內容”,而是“全是背景內容”;
  • 如果風格圖中的背景有豐富紋理或顏色變化,模型會認為“純白純黑背景是待轉換的區域”;
  • 最終結果:模型在嘗試改變背景的過程中,犧牲了前景穩定性,遷移效果不佳。

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

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

相關文章

C#Halcon從零開發_Day14_AOI缺陷檢測策略1_Bolb分析+特征分析_餅干破損檢測

一、引言 *缺陷檢測策略1:Blob分析特征分析 *Blob分析:閾值分割、開閉運算 (1) 圖像預處理 目的:增強目標與背景的對比度,抑制噪聲。 常用算子: threshold():通過閾值分割將圖像轉換為二值圖像。 mean_…

18年磨一劍!開利科技啟動數字化增量投資新時代

當傳統營銷陷入流量困局,當數字化轉型變成"面子工程",廣州開利網絡用18年技術積淀給出新答案——"蚓鏈數字化生態營銷系統",讓企業不再為數字化而數字化,而是通過數字化實現利潤增長! 核心亮點&am…

65-Oracle Undo機制

前一期看了Oracle在redo上保持事務前滾的一致性,同樣Oracle在Undo的管理機制也是現代事務型數據庫的工程典范。核心在于通過多版本并發控制(MVCC)技術,在保障數據一致性與提升系統性能之間實現精妙平衡。Undo機制構建了原子事務的…

【ESP32攝像頭開發實例】-實現遙控視頻小車

ESP32-CAM實現遙控視頻小車 文章目錄 ESP32-CAM實現遙控視頻小車1、硬件準備2、代碼實現3、代碼解析4、程序下載到開發板在本文中,將詳細介紹如何使用ESP32-CAM制作一輛Wi-Fi遠程控制的小車。 1、硬件準備 在開始這個項目之前,我們將強調用于構建機器人的最重要的特性和組件…

圖片加載優化(縮略圖)

縮略圖 系統目前的問題:首頁直接加載原圖,原圖文件通常比縮略圖大數倍甚至數十倍,不僅導致加載時間長,還會造成大量流量浪費。 解決方案:上傳圖片時,同時生成一份較小尺寸的縮略圖。用戶瀏覽圖片列表時加…

GO語言---數組

文章目錄 數組的基本特性數組的聲明和初始化數組元素的訪問和操作數組遍歷多維數組數組的長度和容量數組作為函數參數數組與切片的區別注意 數組是Go語言中最基本的數據結構之一,它是一組相同類型元素的固定長度序列。 數組的基本特性 1、固定長度:數組…

7.5.3_1處理沖突的方法-拉鏈法

知識總覽: 拉鏈法: 開始散列表中沒有存儲任何數據元素即散列地址上的元素是空的,散列地址可以視為鏈表的頭指針,即沒有插入任何元素前鏈表的頭指針是空的。一個散列地址對應一個鏈表,散列地址上實際沒有存數據元素&am…

鴻蒙運動項目開發:項目運行環境切換器

##鴻蒙核心技術##運動開發# 在開發鴻蒙運動項目時,管理不同運行環境(如開發環境、測試環境、生產環境)是一個常見的需求。通過合理地切換運行環境,開發者可以方便地進行調試、測試和部署。本文將介紹如何實現一個項目運行環境切換…

Linux內核中安全創建套接字:為何inet_create未導出及正確替代方案

引言 在Linux內核開發中,當驅動程序需要創建網絡套接字時,開發者常會遇到一個關鍵問題:核心函數inet_create(負責初始化IPv4套接字)并未導出到內核符號表。本文深入剖析這一設計決策背后的邏輯,并提供驅動程序安全創建套接字的實踐方案。 一、inet_create未導出的深層原…

63、不同路徑II

題目 解答: 初始化和特殊情況比較麻煩的dp obstacleGrid(0,0)1的,直接return 0即可。入口都被堵住了還怎么走。 mn1情況,直接判斷 第一行初始化:dp[1][0]->dp[i][0] 碰到有障礙物的,從當前格子開始到末尾全部置…

wx小程序登錄設置角色

背景。pc端登錄后在訪問業務鏈接時可以根據固定獲取用戶的方法LoginUser user LoginHelper.getLoginUser(); 獲取到用戶信息。但wx端登錄后無法獲取。原因處在登陸時對用戶信息的設置方面pc端和小程序端登錄沒有使用相同的登錄方法。排除得知wx端小程序登錄時沒有設置角色。所…

MySQL5.7 慢查詢SQL語句集合

文章目錄 1. 按平均執行時間排序的慢查詢2. 按總執行時長排序的慢查詢3. MySQL 5.7 慢查詢配置檢查4. 掃描行數分析(找出全表掃描)5. 高頻執行的慢查詢6. 當前正在執行的查詢7. 慢查詢統計匯總8. 表結構和索引分析8.1 表索引詳情查詢8.2 表大小統計 1. 按…

MySQL學習(1)——基礎庫操作

歡迎來到博主的專欄:MySQL學習 博主ID:代碼小豪 文章目錄 數據庫原理基礎庫操作增刪數據庫數據庫編碼與校驗規則驗證不同的校驗規則對于庫中數據的影響 備份與恢復數據庫 數據庫原理 mysql版本:mysql8.0 操作系統:ubuntu22.4 為了減少由于環境配置以及權限限制帶來的使用問題&…

C++法則12:右值引用的核心目的:支持移動語義(Move Semantics)

C法則12:右值引用的核心目的:支持移動語義(Move Semantics) 右值引用(Rvalue Reference)是C11引入的最重要特性之一,其主要設計目的就是支持移動語義(Move Semantics)。 …

【LLM學習筆記4】使用LangChain開發應用程序(上)

目錄 前言一、模型、提示和解析器(model、prompt、parsers)二、儲存三、模型鏈四、基于文檔的問答1.使用向量存儲查詢2. 結合表征模型和向量存儲使用檢索問答鏈回答問題 前言 在前面兩部分,我們分別學習了大語言模型的基礎使用準則&#xff…

Negative Contrastive Estimation Negative Sampling

1. 基本概念與問題背景 1.1 大規模分類問題 在自然語言處理中,給定上下文 c c c預測單詞 w w w的條件概率為: P ( w ∣ c ) exp ? ( s θ ( w , c ) ) ∑ w ′ ∈ V exp ? ( s θ ( w ′ , c ) ) P(w|c) \frac{\exp(s_\theta(w,c))}{\sum_{w\in V…

Flink SQL Connector Kafka 核心參數全解析與實戰指南

Flink SQL Connector Kafka 是連接Flink SQL與Kafka的核心組件,通過將Kafka主題抽象為表結構,允許用戶使用標準SQL語句完成數據讀寫操作。本文基于Apache Flink官方文檔(2.0版本),系統梳理從表定義、參數配置到實戰調優…

vscode內嵌瀏覽器實時預覽vue項目

安裝插件 web Preview 啟動vue項目 打開預覽 ctrl shift p 之后輸入并選擇 Open Web Preview 即可看到預覽窗口,但此時明明我的頁面是有內容的,但是窗口卻空白的。 因為默認訪問端口是3000,我們將其修改為vue項目默認的5173端口即可。 點…

計算機網絡:(四)物理層的基本概念,數據通信的基礎知識,物理層下面的傳輸媒體

計算機網絡:(四)物理層的基本概念,數據通信的基礎知識,物理層下面的傳輸媒體 前言一、物理層的基本概念1. 什么是物理層2. 物理層的核心使命3. 物理層的四大特性 二、數據通信的基礎知識1. 數據通信系統的基本模型1.1 …

Linux系統性能優化

目錄 Linux系統性能優化 一、性能優化概述 二、性能監控工具 1. 基礎工具 2. 高級工具 三、子系統優化策略 1. CPU優化 2. 內存優化 3. 磁盤I/O優化 4. 網絡優化 四、資源限制優化 1. ulimit 2. cgroups(控制組) 五、安全與注意事項 六、…