Coach(Intel的強化學習庫):數(shù)據(jù)預處理技術教程_第1頁
Coach(Intel的強化學習庫):數(shù)據(jù)預處理技術教程_第2頁
Coach(Intel的強化學習庫):數(shù)據(jù)預處理技術教程_第3頁
Coach(Intel的強化學習庫):數(shù)據(jù)預處理技術教程_第4頁
Coach(Intel的強化學習庫):數(shù)據(jù)預處理技術教程_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Coach(Intel的強化學習庫):數(shù)據(jù)預處理技術教程1Coach庫概述Coach是Intel推出的一個開源強化學習庫,旨在簡化強化學習算法的開發(fā)和實驗過程。它提供了一個統(tǒng)一的框架,支持多種強化學習算法,包括但不限于DQN、DDPG、A3C等,并且能夠處理不同類型的環(huán)境,如Atari游戲、MuJoCo物理模擬等。Coach的架構設計靈活,易于擴展,同時它也強調了數(shù)據(jù)預處理的重要性,以提高算法的性能和穩(wěn)定性。1.1數(shù)據(jù)預處理在強化學習中的重要性在強化學習中,數(shù)據(jù)預處理是提升模型性能的關鍵步驟。由于強化學習算法需要從環(huán)境中獲取狀態(tài)、動作和獎勵等信息,這些原始數(shù)據(jù)往往需要經過預處理才能被算法有效利用。例如,Atari游戲的屏幕截圖需要轉換為灰度圖像并進行縮放,以減少計算復雜度;連續(xù)動作空間的環(huán)境可能需要對動作進行歸一化,以便算法更好地學習;此外,時間序列數(shù)據(jù)的處理,如使用滑動窗口或差分序列,也是常見的預處理技術。數(shù)據(jù)預處理不僅能夠幫助算法更快地收斂,還能夠提高模型的泛化能力,使其在不同的環(huán)境條件下表現(xiàn)更加穩(wěn)定。接下來,我們將通過具體的代碼示例,展示如何在Coach中進行數(shù)據(jù)預處理。1.2示例:Atari游戲數(shù)據(jù)預處理在Atari游戲環(huán)境中,原始的RGB圖像數(shù)據(jù)需要進行預處理,以適應強化學習算法的輸入要求。以下是一個使用Coach進行Atari游戲數(shù)據(jù)預處理的代碼示例:#導入必要的庫

fromcoachimportcore

fromcoach.architecturesimportAtariArchitecture

fromcoach.environmentsimportAtariEnvironment

fromcoach.exploration_policiesimportEpsilonGreedy

fromcoach.exploration_policiesimportOrnsteinUhlenbeckProcess

fromcoach.memoryimportExperienceReplay

fromcoach.agentsimportDQNAgent

#創(chuàng)建Atari環(huán)境

env=AtariEnvironment(game='Pong')

#創(chuàng)建預處理器

preprocessor=AtariArchitecture.Preprocessor()

#配置預處理器

preprocessor.configure(

grayscale=True,#轉換為灰度圖像

resize=(84,84),#縮放圖像到84x84

frame_stack=4,#堆疊4幀以捕捉動態(tài)信息

no_op_max=30,#最大無操作幀數(shù)

history_length=4,#歷史幀數(shù)

agent_history_length=4,#代理歷史幀數(shù)

state_processor_type='image'#圖像處理器類型

)

#創(chuàng)建DQN代理

agent=DQNAgent(

env=env,

memory=ExperienceReplay(),

exploration_policy=EpsilonGreedy(),

preprocessor=preprocessor

)

#開始訓練

agent.train()在這個例子中,我們首先創(chuàng)建了一個Atari游戲環(huán)境,然后定義了一個預處理器AtariArchitecture.Preprocessor,并配置了預處理器的參數(shù),如將圖像轉換為灰度、縮放圖像尺寸、堆疊幀數(shù)等。這些預處理步驟有助于減少輸入數(shù)據(jù)的維度,同時保留關鍵信息,使DQN代理能夠更有效地學習。1.3示例:連續(xù)動作空間數(shù)據(jù)預處理對于具有連續(xù)動作空間的環(huán)境,如MuJoCo物理模擬,數(shù)據(jù)預處理通常涉及動作的歸一化。以下是一個使用Coach進行連續(xù)動作空間數(shù)據(jù)預處理的代碼示例:#導入必要的庫

fromcoachimportcore

fromcoach.environmentsimportMujocoEnvironment

fromcoach.architecturesimportContinuousActionArchitecture

fromcoach.agentsimportDDPGAgent

#創(chuàng)建MuJoCo環(huán)境

env=MujocoEnvironment('HalfCheetah-v2')

#創(chuàng)建預處理器

preprocessor=ContinuousActionArchitecture.Preprocessor()

#配置預處理器

preprocessor.configure(

action_normalization=True,#動作歸一化

action_range=(-1,1)#動作范圍

)

#創(chuàng)建DDPG代理

agent=DDPGAgent(

env=env,

preprocessor=preprocessor

)

#開始訓練

agent.train()在這個例子中,我們使用ContinuousActionArchitecture.Preprocessor來預處理連續(xù)動作空間的數(shù)據(jù)。通過設置action_normalization=True,預處理器將自動對動作進行歸一化處理,使其范圍在-1到1之間。這有助于算法更好地理解和學習動作空間,提高訓練效率和模型性能。1.4結論數(shù)據(jù)預處理在強化學習中扮演著至關重要的角色,它能夠幫助算法更有效地處理環(huán)境數(shù)據(jù),加速學習過程,提高模型的泛化能力。Coach庫通過提供靈活的預處理器配置,使得開發(fā)者能夠輕松地針對不同環(huán)境和算法需求進行數(shù)據(jù)預處理,從而優(yōu)化強化學習模型的性能。通過上述示例,我們可以看到,無論是處理Atari游戲的圖像數(shù)據(jù),還是MuJoCo環(huán)境的連續(xù)動作空間,Coach都能夠提供相應的預處理工具,簡化強化學習的開發(fā)流程。2數(shù)據(jù)預處理基礎2.1數(shù)據(jù)類型與格式在強化學習中,數(shù)據(jù)預處理是關鍵步驟之一,它確保了輸入數(shù)據(jù)的格式和類型適合算法的處理。數(shù)據(jù)可以是結構化的,如表格數(shù)據(jù),或非結構化的,如圖像、文本和聲音。Coach,作為Intel的強化學習庫,支持多種數(shù)據(jù)類型和格式的預處理。2.1.1結構化數(shù)據(jù)結構化數(shù)據(jù)通常以表格形式存在,每一列代表一個特征,每一行代表一個樣本。在Coach中,可以使用Pandas庫來處理這類數(shù)據(jù)。2.1.1.1示例代碼importpandasaspd

#讀取CSV文件

data=pd.read_csv('data.csv')

#查看數(shù)據(jù)類型

print(data.dtypes)

#轉換數(shù)據(jù)類型

data['age']=data['age'].astype(float)2.1.2非結構化數(shù)據(jù)非結構化數(shù)據(jù)如圖像和文本,需要轉換為結構化數(shù)據(jù)才能被Coach使用。例如,圖像數(shù)據(jù)可以轉換為像素矩陣,文本數(shù)據(jù)可以轉換為詞向量。2.1.2.1示例代碼importnumpyasnp

fromPILimportImage

#讀取圖像

img=Image.open('image.jpg')

#轉換為像素矩陣

pixels=np.array(img)

#查看矩陣形狀

print(pixels.shape)2.2數(shù)據(jù)清洗與缺失值處理數(shù)據(jù)清洗是預處理的另一個重要方面,它包括去除或修正錯誤、不完整、格式不正確或多余的數(shù)據(jù)。缺失值處理是數(shù)據(jù)清洗的一部分,涉及到如何處理數(shù)據(jù)集中缺失的值。2.2.1數(shù)據(jù)清洗數(shù)據(jù)清洗可能包括去除重復的記錄、修正錯誤的值、標準化數(shù)據(jù)格式等。2.2.1.1示例代碼#去除重復記錄

data=data.drop_duplicates()

#修正錯誤值

data['age']=data['age'].apply(lambdax:xifx>0elsenp.nan)

#標準化數(shù)據(jù)格式

data['date']=pd.to_datetime(data['date'])2.2.2缺失值處理處理缺失值有多種方法,包括刪除含有缺失值的記錄、填充缺失值(如使用平均值、中位數(shù)或眾數(shù))或使用模型預測缺失值。2.2.2.1示例代碼#刪除含有缺失值的記錄

data=data.dropna()

#使用平均值填充缺失值

data['age'].fillna(data['age'].mean(),inplace=True)

#使用模型預測缺失值

fromsklearn.imputeimportSimpleImputer

imputer=SimpleImputer(strategy='mean')

data['age']=imputer.fit_transform(data['age'].values.reshape(-1,1))2.2.3數(shù)據(jù)預處理在Coach中的應用在Coach中,數(shù)據(jù)預處理可以使用自定義的預處理函數(shù),或者使用內置的預處理模塊。例如,對于圖像數(shù)據(jù),可以使用內置的圖像預處理模塊來調整圖像大小、歸一化像素值等。2.2.3.1示例代碼fromcoach.preprocessimportImagePreprocessor

#創(chuàng)建圖像預處理器

preprocessor=ImagePreprocessor(size=(64,64),normalize=True)

#預處理圖像數(shù)據(jù)

processed_pixels=preprocessor(pixels)通過上述步驟,我們可以確保輸入到Coach的數(shù)據(jù)是干凈、格式正確且適合算法處理的。這將有助于提高強化學習模型的性能和穩(wěn)定性。3Coach中的數(shù)據(jù)預處理3.1Coach數(shù)據(jù)預處理模塊介紹在強化學習中,數(shù)據(jù)預處理是關鍵步驟之一,它直接影響到模型的訓練效率和最終性能。Coach,作為Intel開發(fā)的強化學習庫,提供了豐富的數(shù)據(jù)預處理模塊,幫助用戶在訓練前對數(shù)據(jù)進行標準化、歸一化等操作,以提升學習算法的表現(xiàn)。3.1.1數(shù)據(jù)預處理的重要性數(shù)據(jù)預處理在強化學習中的作用主要體現(xiàn)在以下幾個方面:減少訓練時間:通過預處理,可以減少數(shù)據(jù)的維度,加快訓練速度。提高模型性能:標準化數(shù)據(jù)可以避免特征之間的量綱差異影響模型學習,使模型更加穩(wěn)定。簡化模型設計:預處理后的數(shù)據(jù)通常更易于模型處理,簡化了模型的設計和調試過程。3.1.2Coach預處理模塊Coach的預處理模塊主要包括:數(shù)據(jù)標準化:將數(shù)據(jù)轉換為均值為0,標準差為1的分布。數(shù)據(jù)歸一化:將數(shù)據(jù)縮放到0-1的范圍內。特征選擇:根據(jù)數(shù)據(jù)的重要性選擇特征。數(shù)據(jù)增強:通過增加數(shù)據(jù)的多樣性來提高模型的泛化能力。3.2使用Coach進行數(shù)據(jù)標準化數(shù)據(jù)標準化是數(shù)據(jù)預處理中最常見的技術之一,它通過調整數(shù)據(jù)的分布,使數(shù)據(jù)的均值接近0,標準差接近1,從而提高模型的訓練效率和性能。在Coach中,可以使用StandardScaler類來實現(xiàn)數(shù)據(jù)標準化。3.2.1示例代碼#導入Coach庫中的預處理模塊

fromcoach.preprocessingimportStandardScaler

#創(chuàng)建數(shù)據(jù)樣本

data=[

[1,2,3],

[4,5,6],

[7,8,9],

[10,11,12]

]

#初始化StandardScaler

scaler=StandardScaler()

#擬合數(shù)據(jù)

scaler.fit(data)

#標準化數(shù)據(jù)

standardized_data=scaler.transform(data)

#打印標準化后的數(shù)據(jù)

print(standardized_data)3.2.2代碼解釋導入模塊:首先,我們從Coach庫中導入StandardScaler類,這是進行數(shù)據(jù)標準化的工具。創(chuàng)建數(shù)據(jù):我們創(chuàng)建了一個簡單的數(shù)據(jù)樣本,它是一個包含4行3列的二維列表。初始化預處理器:使用StandardScaler()初始化預處理器。擬合數(shù)據(jù):通過調用fit()方法,預處理器學習數(shù)據(jù)的均值和標準差。數(shù)據(jù)標準化:調用transform()方法,將原始數(shù)據(jù)轉換為標準化后的數(shù)據(jù)。打印結果:最后,我們打印出標準化后的數(shù)據(jù),以檢查預處理的效果。3.2.3標準化后的數(shù)據(jù)樣例假設原始數(shù)據(jù)的均值和標準差分別為:均值:[5.5,6.5,7.5]標準差:[3.87,3.87,3.87]則標準化后的數(shù)據(jù)可能如下所示:[

[-1.16,-1.16,-1.16],

[-0.39,-0.39,-0.39],

[0.39,0.39,0.39],

[1.16,1.16,1.16]

]每個特征值都已經被轉換為均值為0,標準差為1的分布,這有助于模型更好地學習和泛化。通過上述介紹和示例,我們可以看到Coach庫中的數(shù)據(jù)預處理模塊,尤其是StandardScaler,為強化學習的數(shù)據(jù)預處理提供了強大的支持。合理使用這些工具,可以顯著提升模型的訓練效率和最終性能。4高級數(shù)據(jù)預處理技術4.1特征工程特征工程是機器學習和深度學習項目中至關重要的一步,它涉及從原始數(shù)據(jù)中創(chuàng)建、選擇和轉換特征,以提高模型的性能。在強化學習中,特征工程同樣重要,因為它可以幫助智能體更好地理解環(huán)境,從而做出更優(yōu)的決策。4.1.1特征選擇特征選擇是減少特征數(shù)量的過程,以避免過擬合,提高模型的泛化能力。在Coach中,可以通過分析特征與獎勵之間的相關性來選擇特征。4.1.1.1示例代碼importnumpyasnp

fromsklearn.feature_selectionimportSelectKBest,f_regression

#假設我們有以下環(huán)境特征和獎勵數(shù)據(jù)

features=np.random.rand(100,10)#100個樣本,每個樣本有10個特征

rewards=np.random.rand(100)#100個獎勵值

#使用SelectKBest選擇與獎勵最相關的前5個特征

selector=SelectKBest(score_func=f_regression,k=5)

selected_features=selector.fit_transform(features,rewards)

#輸出選擇后的特征數(shù)量

print("Selectedfeaturesshape:",selected_features.shape)4.1.2特征創(chuàng)建特征創(chuàng)建涉及從現(xiàn)有特征中生成新的特征,以捕捉更復雜的模式。例如,可以創(chuàng)建特征的組合或非線性變換。4.1.2.1示例代碼#假設我們有以下環(huán)境特征

features=np.random.rand(100,3)#100個樣本,每個樣本有3個特征

#創(chuàng)建新的特征,例如特征1和特征2的乘積

new_features=np.column_stack((features,features[:,0]*features[:,1]))

#輸出新特征的數(shù)量

print("Newfeaturesshape:",new_features.shape)4.1.3特征轉換特征轉換可以包括標準化、歸一化或對數(shù)變換等,以確保特征在相同的尺度上,從而避免某些特征對模型的過度影響。4.1.3.1示例代碼fromsklearn.preprocessingimportStandardScaler

#假設我們有以下環(huán)境特征

features=np.random.rand(100,3)#100個樣本,每個樣本有3個特征

#使用StandardScaler進行特征標準化

scaler=StandardScaler()

scaled_features=scaler.fit_transform(features)

#輸出標準化后的特征

print("Scaledfeatures:",scaled_features)4.2時間序列數(shù)據(jù)的預處理在強化學習中,時間序列數(shù)據(jù)預處理是處理隨時間變化的數(shù)據(jù)的關鍵步驟,如股票價格、傳感器讀數(shù)等。預處理可以包括平滑、差分、窗口化等技術。4.2.1平滑平滑技術用于減少時間序列數(shù)據(jù)中的噪聲,常見的方法有移動平均和指數(shù)平滑。4.2.1.1示例代碼importpandasaspd

#假設我們有以下時間序列數(shù)據(jù)

time_series=pd.Series(np.random.randn(100).cumsum(),index=pd.date_range('2023-01-01',periods=100))

#使用移動平均進行平滑

smoothed_series=time_series.rolling(window=10).mean()

#輸出平滑后的數(shù)據(jù)

print("Smoothedtimeseries:",smoothed_series)4.2.2差分差分是處理非平穩(wěn)時間序列數(shù)據(jù)的一種方法,通過計算序列值之間的差值來去除趨勢和季節(jié)性。4.2.2.1示例代碼#繼續(xù)使用上述時間序列數(shù)據(jù)

time_series=pd.Series(np.random.randn(100).cumsum(),index=pd.date_range('2023-01-01',periods=100))

#使用一階差分

differenced_series=time_series.diff().dropna()

#輸出差分后的數(shù)據(jù)

print("Differencedtimeseries:",differenced_series)4.2.3窗口化窗口化技術用于將時間序列數(shù)據(jù)轉換為固定大小的輸入,這在訓練基于時間序列的強化學習模型時非常有用。4.2.3.1示例代碼#繼續(xù)使用上述時間序列數(shù)據(jù)

time_series=pd.Series(np.random.randn(100).cumsum(),index=pd.date_range('2023-01-01',periods=100))

#定義窗口大小

window_size=10

#使用窗口化技術

windowed_data=[]

foriinrange(len(time_series)-window_size+1):

windowed_data.append(time_series[i:i+window_size].values)

#轉換為numpy數(shù)組

windowed_data=np.array(windowed_data)

#輸出窗口化后的數(shù)據(jù)形狀

print("Windoweddatashape:",windowed_data.shape)通過上述示例,我們可以看到如何在強化學習項目中應用特征工程和時間序列數(shù)據(jù)預處理技術,以優(yōu)化模型的性能。這些技術不僅限于Coach庫,也可以應用于其他強化學習框架。5Coach在Atari游戲中的數(shù)據(jù)預處理5.1引言在強化學習中,數(shù)據(jù)預處理是關鍵步驟之一,尤其在處理復雜環(huán)境如Atari游戲時。Coach,Intel的強化學習庫,提供了多種預處理技術,以優(yōu)化模型訓練和性能。本節(jié)將深入探討Coach如何在Atari游戲中應用數(shù)據(jù)預處理技術。5.2數(shù)據(jù)預處理的重要性Atari游戲的原始輸入是高分辨率的彩色圖像,包含大量無關信息,直接輸入到模型中會導致訓練效率低下和過擬合。預處理可以減少輸入維度,提取關鍵特征,從而加速訓練過程并提高模型的泛化能力。5.3Coach的預處理步驟Coach在Atari游戲中的預處理主要包括以下步驟:灰度化:將彩色圖像轉換為灰度圖像,減少顏色通道,簡化輸入。下采樣:降低圖像分辨率,減少輸入維度。幀堆疊:將連續(xù)幾幀圖像堆疊在一起,以捕捉動態(tài)信息。歸一化:將像素值縮放到固定范圍,如[0,1],以加速學習過程。5.3.1灰度化示例importcv2

importnumpyasnp

#假設frame是Atari游戲的一幀圖像

frame=cv2.imread('atari_frame.png')

#灰度化

gray_frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)5.3.2下采樣示例#下采樣到84x84

resized_frame=cv2.resize(gray_frame,(84,84))5.3.3幀堆疊示例classFrameStack:

def__init__(self,stack_size=4):

self.stack_size=stack_size

self.frames=[]

defadd_frame(self,frame):

iflen(self.frames)==self.stack_size:

self.frames.pop(0)

self.frames.append(frame)

defget_stack(self):

returnnp.stack(self.frames,axis=0)

frame_stack=FrameStack()

for_inrange(4):

frame=cv2.imread(f'atari_frame_{_}.png')

gray_frame=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

resized_frame=cv2.resize(gray_frame,(84,84))

frame_stack.add_frame(resized_frame)

stacked_frames=frame_stack.get_stack()5.3.4歸一化示例#歸一化到[0,1]區(qū)間

normalized_frame=resized_frame/255.05.4Coach在連續(xù)控制任務中的數(shù)據(jù)預處理連續(xù)控制任務,如機器人控制或物理模擬,通常涉及高維連續(xù)狀態(tài)和動作空間。Coach通過以下預處理技術優(yōu)化這些任務:狀態(tài)歸一化:將狀態(tài)空間的每個維度縮放到固定范圍,如[-1,1]。動作縮放:將動作空間縮放到模型輸出的范圍內。時間序列處理:對于涉及時間序列數(shù)據(jù)的任務,Coach提供方法來處理序列數(shù)據(jù),如滑動窗口或遞歸網絡輸入。5.4.1狀態(tài)歸一化示例importnumpyasnp

#假設state是一個連續(xù)控制任務的狀態(tài)向量

state=np.array([100,200,300,400])

#歸一化到[-1,1]區(qū)間

state_mean=np.mean(state)

state_std=np.std(state)

normalized_state=(state-state_mean)/state_std5.4.2動作縮放示例#假設action是連續(xù)控制任務的一個動作向量

action=np.array([5,10])

#縮放到模型輸出的范圍內,例如[-1,1]

action_min=np.min(action)

action_max=np.max(action)

scaled_action=(action-action_min)/(action_max-action_min)*2-15.4.3時間序列處理示例classTimeSeriesPreprocessor:

def__init__(self,window_size=10):

self.window_size=window_size

self.buffer=[]

defadd_data(self,data):

self.buffer.append(data)

iflen(self.buffer)>self.window_size:

self.buffer.pop(0)

defget_processed_data(self):

returnnp.array(self.buffer)

time_series_preprocessor=TimeSeriesPreprocessor()

for_inrange(10):

data=np.random.rand(10)

time_series_preprocessor.add_data(data)

processed_data=time_series_preprocessor.get_processed_data()5.5結論Coach通過其內置的數(shù)據(jù)預處理技術,能夠有效處理Atari游戲和連續(xù)控制任務中的復雜數(shù)據(jù),從而提高模型的訓練效率和性能。通過上述示例,我們可以看到如何在實際應用中實施這些預處理步驟。6Coach數(shù)據(jù)預處理技術:總結與最佳實踐6.1數(shù)據(jù)預處理的常見陷阱在使用Coach進行強化學習項目時,數(shù)據(jù)預處理是關鍵步驟之一,它直接影響到模型的訓練效果和決策質量。然而,這一過程也充滿了潛在的陷阱,如果不小心處理,可能會導致模型性能下降。以下是一些常見的數(shù)據(jù)預處理陷阱:忽略數(shù)據(jù)分布:強化學習中的數(shù)據(jù)可能具有特定的分布,如非平穩(wěn)性或長尾分布。直接使用原始數(shù)據(jù)而不考慮其分布,可能會使模型難以收斂或學習到錯誤的策略。過度歸一化:雖然歸一化數(shù)據(jù)可以加速訓練過程,但如果歸一化范圍設置不當,可能會丟失數(shù)據(jù)中的重要信息。例如,將所有數(shù)據(jù)縮放到[0,1]區(qū)間,對于具有負值或極大極小值的數(shù)據(jù)集可能不是最佳選擇。特征選擇不當:在強化學習中,選擇哪些特征輸入到模型中至關重要。錯誤的特征選擇可能會引入噪聲,影響模型的決策能力。時間序列數(shù)據(jù)處理錯誤:強化學習任務往往涉及時間序列數(shù)據(jù)。如果數(shù)據(jù)預處理中沒有正確處理時間依賴性,模型可能無法學習到有效的策略。忽視數(shù)據(jù)的動態(tài)特性:在動態(tài)環(huán)境中,數(shù)據(jù)的特性可能會隨時間變化。預處理時,如果忽視了這種動態(tài)性,模型可能無法適應環(huán)境的變化。6.1.1示例:過度歸一化的陷阱假設我們有一個環(huán)境,其中觀測值包括位置、速度和加速度,這些值的范圍可能非常大。如果我們簡單地將所有數(shù)據(jù)歸一化到[0,1]區(qū)間,可能會丟失速度和加速度的相對重要性信息。#錯誤的歸一化示例

importnumpyasnp

#假

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論