




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于深度學(xué)習(xí)的代碼搜索第八章01理解基于深度學(xué)習(xí)的代碼搜索項目的意義和應(yīng)用領(lǐng)域02掌握權(quán)重初始化和正則化在深度學(xué)習(xí)中的重要性和應(yīng)用03熟悉不同的權(quán)重初始化方法和正則化技術(shù)04了解dropout的原理學(xué)習(xí)目標CONTENTS05掌握在PyTorch框架中實現(xiàn)權(quán)重初始化和正則化的方法和技巧01提高問題分析和解決的能力,能夠理解項目需求并制定相應(yīng)的解決方案02增強團隊合作和溝通能力,能夠與他人合作完成項目任務(wù)03培養(yǎng)持續(xù)學(xué)習(xí)和創(chuàng)新的意識,能夠不斷更新知識和技能,適應(yīng)新的技術(shù)發(fā)展04培養(yǎng)邏輯思維和系統(tǒng)思考能力,能夠分析問題并提出合理的解決方案素質(zhì)目標CONTENTS05培養(yǎng)質(zhì)量意識和工作責(zé)任心,能夠追求高質(zhì)量的代碼和項目成果代碼搜索框架搭建模型訓(xùn)練實踐任務(wù)代碼數(shù)據(jù)處理模型評估與應(yīng)用第一節(jié)
項目學(xué)習(xí)情景假設(shè)你是一名初級程序員,正在開發(fā)一個新的軟件項目。在傳統(tǒng)的代碼搜索方式中,你可能會嘗試使用關(guān)鍵字進行搜索,但由于你對具體的API名或關(guān)鍵字缺乏了解,很難找到與你的需求完全匹配的代碼示例。即使你使用通用搜索引擎進行搜索,返回的結(jié)果也可能過于泛化或與你的問題不完全相關(guān)。然而,如果有一種新的代碼搜索方法,你可以用自然語言描述你想要實現(xiàn)的功能,并通過該方法搜索到與你的需求最相近的代碼示例,這將極大地提高你的開發(fā)效率。這種方法將借助人工智能的技術(shù),通過深度學(xué)習(xí)和自然語言處理技術(shù)對代碼進行語義匹配,從而找到最符合你需求的代碼片段。任務(wù)需求描述在項目技術(shù)分析中,我們將討論構(gòu)建基于深度學(xué)習(xí)的代碼搜索引擎所需的關(guān)鍵技術(shù)和方法。首先,為了實現(xiàn)代碼搜索引擎,我們需要構(gòu)建一個大規(guī)模的代碼庫,其中包含各種編程語言的代碼示例。其次,我們需要使用自然語言處理技術(shù)來處理用戶的自然語言查詢語句。這包括將查詢進行分詞、詞性標注、命名實體識別等處理,以便更好地理解查詢的語義和意圖。另外,我們還需要設(shè)計合適的評估指標來衡量代碼之間的語義相似度。常用的指標包括余弦相似度、歐氏距離、曼哈頓距離等。最后,我們還可以考慮引入預(yù)訓(xùn)練的語言模型來進一步提高代碼搜索的準確性和效果。項目技術(shù)分析項目學(xué)習(xí)情景第二節(jié)
權(quán)重初始化在深度學(xué)習(xí)模型中,權(quán)重初始化是非常重要的一步。適當?shù)臋?quán)重初始化可以幫助模型更快地收斂并獲得更好的性能。錯誤的權(quán)重初始化可能導(dǎo)致梯度消失或梯度爆炸,使模型無法學(xué)習(xí)有效的表示,從而影響模型的性能和訓(xùn)練效果。因此,了解權(quán)重初始化的原理和技巧是構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的關(guān)鍵知識。權(quán)重初始化是指在神經(jīng)網(wǎng)絡(luò)中設(shè)置初始權(quán)重的過程。每個神經(jīng)元的權(quán)重值起初是隨機初始化的,并且這些初始值可以對模型的訓(xùn)練和收斂過程產(chǎn)生重要影響。正確的權(quán)重初始化可以幫助模型在訓(xùn)練過程中更好地優(yōu)化和適應(yīng)數(shù)據(jù)。權(quán)重初始化的定義第二節(jié)
權(quán)重初始化權(quán)重初始化的方法權(quán)重零初始化第二節(jié)
權(quán)重初始化權(quán)重初始化的方法例子1:x=torch.rand(512,512)foriinrange(100):a=torch.rand(512,512)x=a@xprint(x.mean(),x.std())輸出結(jié)果:tensor(inf)tensor(nan)例子2:x=torch.rand(512,512)foriinrange(100):a=torch.rand(512,512)x=a@xiftorch.isnan(x.std()):breakprint(i)輸出結(jié)果:16權(quán)重隨機初始化第二節(jié)
權(quán)重初始化權(quán)重初始化的方法盡可能的讓輸入和輸出服從相同的分布,這樣就能夠避免后面層的激活函數(shù)的輸出值趨向于0使用方法:torch.nn.init.xavier_uniform_(tensor:Tensor,gain:float=1.)torch.nn.init.xavier_normal_(tensor:Tensor,gain:float=1.)權(quán)重Xavier初始化第二節(jié)
權(quán)重初始化權(quán)重初始化的方法He初始化方法對非線性激活函數(shù)效果更好使用方法:torch.nn.init.kaiming_uniform_(tensor:Tensor,gain:float=1.)torch.nn.init.kaiming_normal_(tensor:Tensor,gain:float=1.)權(quán)重He初始化隨機初始化最簡單的權(quán)重初始化方法是隨機從某個分布中選擇初始權(quán)重。常用的分布包括均勻分布和正態(tài)分布。例如,可以使用均勻分布在[-r,r]的范圍內(nèi)初始化權(quán)重,其中r是根據(jù)神經(jīng)元的輸入和輸出數(shù)量來確定的。零初始化將所有權(quán)重初始化為零的方法。然而,這種方法通常不建議使用,因為它會導(dǎo)致所有神經(jīng)元對稱地更新,無法破壞模型的對稱性。Xavier初始化Xavier初始化是一種常用的權(quán)重初始化方法,特別適用于具有sigmoid激活函數(shù)的網(wǎng)絡(luò)層。它根據(jù)輸入和輸出神經(jīng)元數(shù)量來計算合適的初始化范圍,從而避免了梯度消失或梯度爆炸問題。權(quán)重初始化He初始化He初始化是一種針對具有ReLU(RectifiedLinearUnit)激活函數(shù)的網(wǎng)絡(luò)層的權(quán)重初始化方法。與Xavier初始化類似,它根據(jù)輸入和輸出神經(jīng)元數(shù)量來計算合適的初始化范圍,以適應(yīng)ReLU的非線性特性。第三節(jié)
正則化在深度學(xué)習(xí)中,過擬合是一個常見的問題,特別是在訓(xùn)練數(shù)據(jù)較少的情況下。過擬合指的是模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,但在新數(shù)據(jù)上表現(xiàn)不佳的現(xiàn)象。為了避免過擬合,我們需要一種方法來減少模型的復(fù)雜性,并使其更具泛化能力。正則化就是一種常用的方法,它可以幫助控制模型的復(fù)雜性,防止過擬合。正則化的定義第三節(jié)
正則化正則化的定義神經(jīng)網(wǎng)絡(luò)訓(xùn)練學(xué)生學(xué)習(xí)第三節(jié)
正則化正則化是通過在模型的損失函數(shù)中引入額外的懲罰項來控制模型的復(fù)雜性。這個懲罰項通常與模型的參數(shù)相關(guān),可以限制參數(shù)的取值范圍或降低參數(shù)的絕對值。正則化的目標是在最小化訓(xùn)練數(shù)據(jù)的損失的同時,盡量減小模型的復(fù)雜性,從而提高模型的泛化能力。正則化可以應(yīng)用于各種深度學(xué)習(xí)模型和任務(wù)中,特別是在有限的訓(xùn)練數(shù)據(jù)情況下。它常用于神經(jīng)網(wǎng)絡(luò)、線性回歸、邏輯回歸等模型中,以減少模型的過擬合風(fēng)險。正則化的定義L1正則化通過在損失函數(shù)中加入?yún)?shù)的絕對值之和作為懲罰項來控制模型的復(fù)雜性。它傾向于使一些參數(shù)變?yōu)?,從而實現(xiàn)特征選擇的效果。L1正則化可以用于特征選擇、稀疏表示等任務(wù)。L1正則化(L1Regularization)方法L2正則化通過在損失函數(shù)中加入?yún)?shù)的平方和的一半作為懲罰項來控制模型的復(fù)雜性。L2正則化可以防止參數(shù)過大,并使參數(shù)接近于0。它通常比L1正則化更常用,因為它計算簡單且有平滑的解。L2正則化(L2Regularization)正則化
通過指暫時隨機丟棄一部分神經(jīng)元及其連接,來達到防止過擬合的效果Dropout方法將網(wǎng)絡(luò)架構(gòu)權(quán)重的一個隨機選擇子集設(shè)置為零,取代了在Dropout中對每個層隨機選擇激活函數(shù)的子集設(shè)置為零的做法。DropConnect正則化
早停法可以限制模型最小化代價函數(shù)所需的訓(xùn)練迭代次數(shù)。早停法通常用于防止訓(xùn)練中過度表達的模型泛化性能差。早停法方法正則化
第四節(jié)
模型介紹在開始訓(xùn)練之前,我們找了一些前人的解決方案,依次復(fù)現(xiàn)并進行了比較。經(jīng)過復(fù)現(xiàn)和比較,我們認為DeepCodeSearch論文中(DCS論文)提到的CODEnn(Code-DescriptionEmbeddingNeuralNetwork)模型表現(xiàn)的較好。我們的目的是要通過自然語言的查詢語句來搜索對應(yīng)的代碼,但是自然語言和程序代碼是異構(gòu)的兩種數(shù)據(jù),直觀上找不到任何相似性,無法進行有效的搜索。如果我們可以將這兩種異構(gòu)的數(shù)據(jù)嵌入(映射)到同一個向量空間,如下圖所示。模型介紹模型介紹這樣帶有相同或相似語義的自然語言查詢語句和對應(yīng)的代碼就會離的很近,而不相關(guān)的自然語言查詢語句和代碼則會離得很遠。我們只要在該空間內(nèi)找到距離最近的代碼就可以了。所以CodeSearch的整體系統(tǒng)架構(gòu)可以由下圖所示:模型介紹基于上面的思路,系統(tǒng)中最核心的部分就是上圖圓圈中的模型部分,它可以把程序代碼和自然語言嵌入到同一個向量空間。DeepCodeSearch論文中提出的模型叫做CODEnn(Code-DescriptionEmbeddingNeuralNetwork),可以由下圖來表示:模型介紹具體模型的細節(jié)可以參考下圖所示。模型介紹我們嘗試對以上不同方法的不同組合進行比較,由于大數(shù)據(jù)集上的調(diào)參需要較大的時間和資源,我們假設(shè)在小數(shù)據(jù)集上表現(xiàn)較好的模型在大數(shù)據(jù)集上也會表現(xiàn)得很好。所以我們選用了GitHub上的Numpy倉庫的代碼來做實驗,比較各種參數(shù)的選擇。下圖是各個調(diào)參后訓(xùn)練的結(jié)果。第五節(jié)
數(shù)據(jù)準備本案例將從github網(wǎng)站上爬取數(shù)據(jù)進行模型訓(xùn)練。需要以下2中方法1、爬GitHub倉庫搜索頁/search?l=Python&o=desc&p=1&q=python+license%3Amit&s=stars&type=Repositories2、使用GitHub官方API/search/repositories?q=python+license%3Amit&language=python&sort=stars&page=1數(shù)據(jù)爬取第五節(jié)
數(shù)據(jù)準備將github上的代碼拉到本地。在收集到我們想要的GitHub倉庫列表后,使用git工具進行clone將數(shù)據(jù)下載到本地。數(shù)據(jù)爬取第五節(jié)
數(shù)據(jù)準備我們需要將數(shù)據(jù)集處理成模型需要的格式,主要分為以下幾步:1.抽取方法名、API序列、標識符、描述等信息這一步主要借助astor包來處理Python代碼,它可將代碼解析為抽象語法樹,這樣程序可以直接訪問結(jié)構(gòu)化的數(shù)據(jù),很方便的取到代碼中的函數(shù)、描述、方法名等信息。然后將抽取到的每個函數(shù)的信息寫入到CSV文件中,每行代表一個函數(shù)。每行都有函數(shù)所在的本地文件路徑、GitHub鏈接、函數(shù)開始所在行號、方法名、API序列、標識符、描述等信息。數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理2.數(shù)據(jù)清洗這一步我們進一步處理上一步得到的數(shù)據(jù)并做清洗。首先,對于方法名,如果方法名過短(少于3個字母),我們認為這是無意義的數(shù)據(jù),舍棄;有些函數(shù),比如初始化函數(shù)__init__一類的,也舍棄掉;另外,我們還需要對方法名按駝峰命名或_進行分割,得到一個類似于句子的序列,比如,將readFile和read_file處理為readfile。然后,如果一個描述為多行文本,我們只取第一行作為描述。如果一個代碼段沒有對應(yīng)的描述,那么它不能參與訓(xùn)練,但可以放在最后查詢的代碼庫中。最后需要對數(shù)據(jù)進行去重。大家可能深有體會,很多人在寫代碼的時候,經(jīng)常會將別人的實現(xiàn)原封不動的搬過來的,所以需要對代碼片段數(shù)據(jù)進行去重。數(shù)據(jù)預(yù)處理3.切分數(shù)據(jù)集清洗過的數(shù)據(jù)可以作為最后查詢的代碼庫來使用,但只有包含描述信息的數(shù)據(jù)可以用于訓(xùn)練模型。用于訓(xùn)練的數(shù)據(jù)按8:1:1再次拆分為訓(xùn)練集、驗證集和測試集。4.導(dǎo)出為模型需要的格式這一步按照模型的要求將上面切分好的數(shù)據(jù)導(dǎo)出為HDF5格式的數(shù)據(jù)文件。第六節(jié)
訓(xùn)練模型、模型應(yīng)用以下使用PyTorch來定義和訓(xùn)練模型,由于篇幅原因,這里省略了很多代碼,只介紹出了部分關(guān)鍵代碼。1.定義模型從前面模型細節(jié)圖中可以看到,我們對方法名、API序列、描述都使用了同樣的編碼器,我們可以針對序列數(shù)據(jù)統(tǒng)一定義一個編碼器:訓(xùn)練模型訓(xùn)練模型classSeqEncoder(nn.Module):def__init__(self,vocab_size,embed_size,hidden_size,rnn='lstm',bidirectional=True,pool='max',activation='tanh'):self.embedding=nn.Embedding(vocab_size,embed_size,padding_idx=0)self.rnn=rnn_choices[rnn](embed_size,hidden_size,bidirectional)self.pool=pool_choices[pool]self.activation=activations_choices[activation]defforward(self,input):embedded=F.dropout(self.embedding(input),0.25,self.training)rnn_output=F.dropout(self.rnn(embedded)[0],0.25,self.training)returnself.activation(self.pool(rnn_output,dim=1))訓(xùn)練模型同樣的,針對標識符使用的MLP,我們也定義一個編碼器:classBOWEncoder(nn.Module):def__init__(self,vocab_size,embed_size,pool='max',activation='tanh'):self.embedding=nn.Embedding(vocab_size,embed_size)self.pool=pool_choices[pool]self.activation=activations_choices[activation]defforward(self,input):embedded=F.dropout(self.embedding(input),0.25,self.training)returnself.activation(self.pool(embedded,dim=1))訓(xùn)練模型這樣,我們的代碼編碼網(wǎng)絡(luò)CoVV可以定義為:defforward_code(self,name,apis,tokens):name_repr=SeqEncoder(name)apis_repr=SeqEncoder(apis)tokens_repr=BOWEncoder(tokens)code_repr=nn.Linear(torch.cat((name_repr,apis_repr,tokens_repr),1))returntorch.tanh(code_repr)描述編碼網(wǎng)絡(luò)DGVV可以定義為:defforward_desc(self,desc):returnSeqEncoder(desc)訓(xùn)練模型真實訓(xùn)練時,我們給每個代碼段兩個描述,一個是原始描述,即正確的描述,另一個是隨機描述,即錯誤描述,然后選取下面的值作為loss,參考代碼如下:defforward(self,name,apis,tokens,desc_good,desc_bad):code_repr=forward_code(name,apis,tokens)good_sim=F.cosine_similarity(code_repr,forward_desc(desc_good))bad_sim=F.cosine_similarity(code_repr,forward_desc(desc_bad))return(margin-good_sim+bad_sim).clamp(min=1e-6)具體的代碼在2Lc\3WoqGl\coqGuu.b入中,對應(yīng)的訓(xùn)練命令為:pythonsrc/3Model/codenn.py--dataset_pathdata/py/final--model_pathdata/py/model--batch_size512--epoch800--gpu訓(xùn)練模型成功運行后,可以看到命令行窗口中顯示出了tensorboard服務(wù)運行在哪個端口,默認是在6006端口。使用瀏覽器打開http://localhost:6006即可看到訓(xùn)練數(shù)據(jù)。其中,loss的變化如下圖所示:第七節(jié)
不同初始化權(quán)重比較在深度學(xué)習(xí)中,初始化權(quán)重是模型訓(xùn)練的關(guān)鍵步驟之一。合適的權(quán)重初始化方法可以對模型的訓(xùn)練速度、收斂性和泛化能力產(chǎn)生重要影響。不同的初始化方法具有不同的特點,了解它們可以幫助選擇最合適的初始化策略。不同初始化權(quán)重比較隨機初始化權(quán)重使用從均勻分布或正態(tài)分布中隨機采樣的隨機數(shù)進行初始化。是最常用的方法之一,它可以打破對稱性并避免陷入局部最優(yōu)解。然而,隨機初始化的效果受到初始權(quán)重范圍的影響,選擇合適的范圍很重要。零初始化所有權(quán)重都初始化為零。雖然零初始化是一種簡單的方法,但它可能導(dǎo)致模型無法學(xué)習(xí),因為所有的權(quán)重具有相同的值,無法提供足夠的變化。Xavier初始化由Glorot和Bengio提出的一種初始化方法,適用于激活函數(shù)為sigmoid或tanh的網(wǎng)絡(luò)。Xavier初始化通過根據(jù)輸入和輸出的維度來縮放權(quán)重的隨機初始化范圍。可以幫助避免梯度消失或梯度爆炸的問題。不同初始化權(quán)重比較He初始化由He等人提出的一種初始化方法,適用于使用ReLU或其變體的網(wǎng)絡(luò)。He初始化與Xavier初始化類似,但它將縮放因子調(diào)整為平方根倍數(shù),以適應(yīng)ReLU的特性。第七節(jié)
不同初始化權(quán)重比較設(shè)計思想是根據(jù)前一層和后一層的神經(jīng)元數(shù)量來設(shè)置權(quán)重的初始值,以保持信號在前向傳播過程中的適當范圍。1、對于均勻分布的Xavier初始化(均勻版):從均勻分布中隨機初始化權(quán)重矩陣W,范圍為[-a,a],其中a=sqrt(6/(n+m))。2、對于高斯分布的Xavier初始化(高斯版):從高斯分布中隨機初始化權(quán)重矩陣W,均值為0,方差為variance,其中variance=2/(n+m)。Xavier初始化第七節(jié)
不同初始化權(quán)重比較Xavier初始化例子,假設(shè)有這樣一個網(wǎng)絡(luò):輸入層(100個神經(jīng)元)隱藏層1(80個神經(jīng)元)
sqrt(6/(100+80))≈0.136;初始化分布范圍:[-0.136,0.136]隱藏層2(60個神經(jīng)元)sqrt(6/(80+60))≈0.153;
初始化分布范圍:[-0.153,0.153]
隱藏層3(40個神經(jīng)元)輸出層(10個神經(jīng)元)Xavier初始化不同初始化權(quán)重比較在PyTorch框架中,可以通過設(shè)置模型的權(quán)重初始化方法來使用不同的初始化策略。下面是一個使用PyTorch框架的示例代碼:importtorchimporttorch.nnasnn#自定義一個全連接神經(jīng)網(wǎng)絡(luò)classNeuralNetwork(nn.Module):def__init__(self):super(NeuralNetwork,self).__init__()self.fc1=nn.Linear(784,256)self.fc2=nn.Linear(256,128)self.fc3=nn.Linear(128,10)代碼實現(xiàn)不同初始化權(quán)重比較#使用Xavier初始化nn.init.xavier_uniform_(self.fc1.weight)nn.init.xavier_uniform_(self.fc2.weight)nn.init.xavier_uniform_(self.fc3.weight)defforward(self,x):x=torch.flatten(x,1)x=self.fc1(x)x=torch.relu(x)x=self.fc2(x)x=torch.relu(x)x=self.fc3(x)returnx#創(chuàng)建模型實例model=NeuralNetwork()第八節(jié)
更多正則化方法在深度學(xué)習(xí)中,我們的目標是找到一個能夠最小化損失函數(shù)的模型。然而,如果我們只關(guān)注最小化損失函數(shù),我們可能會得到一個過于復(fù)雜的模型,這個模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)得很好,但在新的數(shù)據(jù)上可能表現(xiàn)得很差。這就是所謂的過擬合。而正則化的目的就是為了解決過擬合的問題。正則化方法L1正則化(L1Regularization)也稱為Lasso正則化,它通過在損失函數(shù)中添加權(quán)重的絕對值之和來懲罰模型的復(fù)雜性。L1正則化可以促使模型產(chǎn)生稀疏的權(quán)重,即某些權(quán)重變?yōu)榱悖瑥亩鴮崿F(xiàn)特征選擇和模型簡化。DropoutDropout是一種隨機丟棄神經(jīng)網(wǎng)絡(luò)中的部分神經(jīng)元的技術(shù)。它在訓(xùn)練過程中以一定的概率將神經(jīng)元輸出置為零,這樣可以減少神經(jīng)元之間的共適應(yīng)性,強迫模型學(xué)習(xí)更加魯棒的特征。在測試階段,Dropout通常會關(guān)閉或按照一定的縮放因子應(yīng)用。L2正則化(L2Regularization)L2正則化通過在損失函數(shù)中加入?yún)?shù)的平方和的一半作為懲罰項來控制模型的復(fù)雜性。L2正則化可以防止參數(shù)過大,并使參數(shù)接近于0。它通常比L1正則化更常用,因為它計算簡單且有平滑的解。更多正則化方法EarlyStopping是一種簡單而有效的正則化方法。通過在驗證集上監(jiān)控模型的性能。在性能不再提升時停止訓(xùn)練,防止模型過擬合訓(xùn)練數(shù)據(jù)。訓(xùn)練過程中監(jiān)控模型的驗證集性能實現(xiàn)。在驗證集上的性能不再提升時,可以停止訓(xùn)練。正則化importnumpyasnp#L1正則化項defl1_regularizer(weights):returnnp.sum(np.abs(weights))#線性回歸模型classLinearRegression:def__init__(self,input_size,l1_regularizer):self.weights=np.zeros((input_size,))self.bias=0self.l1_regularizer=l1_regularizerL1正則化正則化defpredict(self,inputs):returnnp.dot(inputs,self.weights)+self.biasdeftrain(self,inputs,targets,learning_rate):predictions=self.predict(inputs)errors=targets-predictions#計算L1正則化項regularization=self.l1_regularizer(self.weights)#更新權(quán)重和偏置self.weights+=learning_rate*np.dot(inputs.T,errors)self.bias+=learning_rate*np.sum(errors)#更新L1正則化項self.weights-=learning_rate*self.l1_regularizer(self.weights)returnregularization正則化importtorchimporttorch.nnasnnclassCNN(nn.Module):
#定義網(wǎng)絡(luò)結(jié)構(gòu)passmodel=CNN()
#實例化網(wǎng)絡(luò)模型criterion=nn.MSELoss()
#定義損失函數(shù)optimizer=torch.optim.SGD(model.parameters(),lr=0.01)
#定義優(yōu)化器#定義L2正則化函數(shù)defl2_regularizer(weight,lambda_l2):returnlambda_l2*torch.norm(weight,2)L2正則化正則化#迭代訓(xùn)練fori,datainenumerate(train_loader,0):inputs,labels=data
#解析數(shù)據(jù)optimi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 19762:2025 EN Information technology - Automatic identification and data capture (AIDC) techniques - Vocabulary
- 【正版授權(quán)】 ISO 13402:2025 EN Surgical and dental hand instruments - Determination of resistance against autoclaving,corrosion and thermal exposure
- 【正版授權(quán)】 IEC 60614-1:1994 EN-D Conduits for electrical installations - Specification - Part 1: General requirements
- 【正版授權(quán)】 IEC 60335-2-75:2024 EXV-CMV EN Household and similar electrical appliances - Safety - Part 2-75: Particular requirements for commercial dispensing appliances and vending mac
- 勸學(xué)的課件講解
- 副腫瘤綜合征護理
- 小學(xué)春節(jié)安全教育
- 20xx年高端專業(yè)模版
- 上海師范大學(xué)天華學(xué)院《精讀二:文學(xué)與人生》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇食品藥品職業(yè)技術(shù)學(xué)院《污染與恢復(fù)生態(tài)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 幼兒園4000余冊師生圖書配置一覽表
- “雄鷹杯”全國小動物醫(yī)師技能大賽考試題庫(660題)
- 新能源汽車充電樁項目可行性研究報告模板及范文
- 新能源汽車驅(qū)動電機及控制系統(tǒng)檢修教案 學(xué)習(xí)情境 1:驅(qū)動電機的認知
- 如何應(yīng)對學(xué)習(xí)壓力
- 梁板墻柱混凝土同時澆筑專項方案(專家論證)
- 2024年初級消防員職業(yè)技能鑒定考試復(fù)習(xí)題庫(單選、多選題)
- 玉溪大紅山鐵礦二期北采區(qū)采礦施工組織設(shè)計
- 陽光心理-健康人生小學(xué)生心理健康主題班會課件
- 第9課資產(chǎn)階級革命與資本主義制度的確立課件-高中歷史統(tǒng)編版2019必修中外歷史綱要下冊
- 2024年共青團入團積極分子團校結(jié)業(yè)考試試題庫及答案
評論
0/150
提交評論