作者 | Vihar Kurama
柳北網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
編譯 | 荷葉
來(lái)源 | 云棲社區(qū)
摘要:深度學(xué)習(xí)背后的主要原因是人工智能應(yīng)該從人腦中汲取靈感。本文就用一個(gè)小例子無(wú)死角的介紹一下深度學(xué)習(xí)!
人腦模擬
深度學(xué)習(xí)背后的主要原因是人工智能應(yīng)該從人腦中汲取靈感。此觀點(diǎn)引出了“神經(jīng)網(wǎng)絡(luò)”這一術(shù)語(yǔ)。人腦中包含數(shù)十億個(gè)神經(jīng)元,它們之間有數(shù)萬(wàn)個(gè)連接。很多情況下,深度學(xué)習(xí)算法和人腦相似,因?yàn)槿四X和深度學(xué)習(xí)模型都擁有大量的編譯單元(神經(jīng)元),這些編譯單元(神經(jīng)元)在獨(dú)立的情況下都不太智能,但是當(dāng)他們相互作用時(shí)就會(huì)變得智能。
我認(rèn)為人們需要了解到深度學(xué)習(xí)正在使得很多幕后的事物變得更好。深度學(xué)習(xí)已經(jīng)應(yīng)用于谷歌搜索和圖像搜索,你可以通過它搜索像“擁抱”這樣的詞語(yǔ)以獲得相應(yīng)的圖像。-杰弗里·辛頓
神經(jīng)元
神經(jīng)網(wǎng)絡(luò)的基本構(gòu)建模塊是人工神經(jīng)元,它模仿了人類大腦的神經(jīng)元。這些神經(jīng)元是簡(jiǎn)單、強(qiáng)大的計(jì)算單元,擁有加權(quán)輸入信號(hào)并且使用激活函數(shù)產(chǎn)生輸出信號(hào)。這些神經(jīng)元分布在神經(jīng)網(wǎng)絡(luò)的幾個(gè)層中。
inputs 輸入 outputs 輸出 weights 權(quán)值 activation 激活
人工神經(jīng)網(wǎng)絡(luò)的工作原理是什么?
深度學(xué)習(xí)由人工神經(jīng)網(wǎng)絡(luò)構(gòu)成,該網(wǎng)絡(luò)模擬了人腦中類似的網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)穿過這個(gè)人工網(wǎng)絡(luò)時(shí),每一層都會(huì)處理這個(gè)數(shù)據(jù)的一方面,過濾掉異常值,辨認(rèn)出熟悉的實(shí)體,并產(chǎn)生最終輸出。
輸入層:該層由神經(jīng)元組成,這些神經(jīng)元只接收輸入信息并將它傳遞到其他層。輸入層的圖層數(shù)應(yīng)等于數(shù)據(jù)集里的屬性或要素的數(shù)量。輸出層:輸出層具有預(yù)測(cè)性,其主要取決于你所構(gòu)建的模型類型。隱含層:隱含層處于輸入層和輸出層之間,以模型類型為基礎(chǔ)。隱含層包含大量的神經(jīng)元。處于隱含層的神經(jīng)元會(huì)先轉(zhuǎn)化輸入信息,再將它們傳遞出去。隨著網(wǎng)絡(luò)受訓(xùn)練,權(quán)重得到更新,從而使其更具前瞻性。
神經(jīng)元的權(quán)重
權(quán)重是指兩個(gè)神經(jīng)元之間的連接的強(qiáng)度或幅度。你如果熟悉線性回歸的話,可以將輸入的權(quán)重類比為我們?cè)诨貧w方程中用的系數(shù)。權(quán)重通常被初始化為小的隨機(jī)數(shù)值,比如數(shù)值0-1。
前饋深度網(wǎng)絡(luò)
前饋監(jiān)督神經(jīng)網(wǎng)絡(luò)曾是第一個(gè)也是最成功的學(xué)習(xí)算法。該網(wǎng)絡(luò)也可被稱為深度網(wǎng)絡(luò)、多層感知機(jī)(MLP)或簡(jiǎn)單神經(jīng)網(wǎng)絡(luò),并且闡明了具有單一隱含層的原始架構(gòu)。每個(gè)神經(jīng)元通過某個(gè)權(quán)重和另一個(gè)神經(jīng)元相關(guān)聯(lián)。
該網(wǎng)絡(luò)處理向前處理輸入信息,激活神經(jīng)元,最終產(chǎn)生輸出值。在此網(wǎng)絡(luò)中,這稱為前向傳遞。
inputlayer 輸入層 hidden layer 輸出層 output layer 輸出層
激活函數(shù)
激活函數(shù)就是求和加權(quán)的輸入到神經(jīng)元的輸出的映射。之所以稱之為激活函數(shù)或傳遞函數(shù)是因?yàn)樗刂浦せ钌窠?jīng)元的初始值和輸出信號(hào)的強(qiáng)度。
用數(shù)學(xué)表示為:
我們有許多激活函數(shù),其中使用最多的是整流線性單元函數(shù)、雙曲正切函數(shù)和solfPlus函數(shù)。
激活函數(shù)的速查表如下:
反向傳播
在網(wǎng)絡(luò)中,我們將預(yù)測(cè)值與預(yù)期輸出值相比較,并使用函數(shù)計(jì)算其誤差。然后,這個(gè)誤差會(huì)傳回這個(gè)網(wǎng)絡(luò),每次傳回一個(gè)層,權(quán)重也會(huì)根絕其導(dǎo)致的誤差值進(jìn)行更新。這個(gè)聰明的數(shù)學(xué)法是反向傳播算法。這個(gè)步驟會(huì)在訓(xùn)練數(shù)據(jù)的所有樣本中反復(fù)進(jìn)行,整個(gè)訓(xùn)練數(shù)據(jù)集的網(wǎng)絡(luò)更新一輪稱為一個(gè)時(shí)期。一個(gè)網(wǎng)絡(luò)可受訓(xùn)練數(shù)十、數(shù)百或數(shù)千個(gè)時(shí)期。
prediction error 預(yù)測(cè)誤差
代價(jià)函數(shù)和梯度下降
代價(jià)函數(shù)度量了神經(jīng)網(wǎng)絡(luò)對(duì)給定的訓(xùn)練輸入和預(yù)期輸出“有多好”。該函數(shù)可能取決于權(quán)重、偏差等屬性。
代價(jià)函數(shù)是單值的,并不是一個(gè)向量,因?yàn)樗鼜恼w上評(píng)估神經(jīng)網(wǎng)絡(luò)的性能。在運(yùn)用梯度下降最優(yōu)算法時(shí),權(quán)重在每個(gè)時(shí)期后都會(huì)得到增量式地更新。
兼容代價(jià)函數(shù)
用數(shù)學(xué)表述為差值平方和:
target 目標(biāo)值 output 輸出值
權(quán)重更新的大小和方向是由在代價(jià)梯度的反向上采取步驟計(jì)算出的。
其中η 是學(xué)習(xí)率
其中Δw是包含每個(gè)權(quán)重系數(shù)w的權(quán)重更新的向量,其計(jì)算方式如下:
target 目標(biāo)值 output 輸出值
圖表中會(huì)考慮到單系數(shù)的代價(jià)函數(shù)
initial weight 初始權(quán)重 gradient 梯度 global cost minimum 代價(jià)極小值
在導(dǎo)數(shù)達(dá)到最小誤差值之前,我們會(huì)一直計(jì)算梯度下降,并且每個(gè)步驟都會(huì)取決于斜率(梯度)的陡度。
多層感知器(前向傳播)
這類網(wǎng)絡(luò)由多層神經(jīng)元組成,通常這些神經(jīng)元以前饋方式(向前傳播)相互連接。一層中的每個(gè)神經(jīng)元可以直接連接后續(xù)層的神經(jīng)元。在許多應(yīng)用中,這些網(wǎng)絡(luò)的單元會(huì)采用S型函數(shù)或整流線性單元(整流線性激活)函數(shù)作為激活函數(shù)。
現(xiàn)在想想看要找出處理次數(shù)這個(gè)問題,給定的賬戶和家庭成員作為輸入
要解決這個(gè)問題,首先,我們需要先創(chuàng)建一個(gè)前向傳播神經(jīng)網(wǎng)絡(luò)。我們的輸入層將是家庭成員和賬戶的數(shù)量,隱含層數(shù)為1, 輸出層將是處理次數(shù)。
將圖中輸入層到輸出層的給定權(quán)重作為輸入:家庭成員數(shù)為2、賬戶數(shù)為3。
現(xiàn)在將通過以下步驟使用前向傳播來(lái)計(jì)算隱含層(i,j)和輸出層(k)的值。
步驟:
1, 乘法-添加方法。
2, 點(diǎn)積(輸入*權(quán)重)。
3,一次一個(gè)數(shù)據(jù)點(diǎn)的前向傳播。
4, 輸出是該數(shù)據(jù)點(diǎn)的預(yù)測(cè)。
i的值將從相連接的神經(jīng)元所對(duì)應(yīng)的輸入值和權(quán)重中計(jì)算出來(lái)。
i = (2 * 1) + (3* 1) → i = 5
同樣地,j = (2 * -1) + (3 * 1) → j =1
K = (5 * 2) + (1* -1) → k = 9
Python中的多層感知器問題的解決
激活函數(shù)的使用
為了使神經(jīng)網(wǎng)絡(luò)達(dá)到其最大預(yù)測(cè)能力,我們需要在隱含層應(yīng)用一個(gè)激活函數(shù),以捕捉非線性。我們通過將值代入方程式的方式來(lái)在輸入層和輸出層應(yīng)用激活函數(shù)。
這里我們使用整流線性激活(ReLU):
用Keras開發(fā)第一個(gè)神經(jīng)網(wǎng)絡(luò)
關(guān)于Keras:
Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)的應(yīng)用程序編程接口,由Python編寫,能夠搭建在TensorFlow,CNTK,或Theano上。
使用PIP在設(shè)備上安裝Keras,并且運(yùn)行下列指令。
在keras執(zhí)行深度學(xué)習(xí)程序的步驟
1,加載數(shù)據(jù);
2,創(chuàng)建模型;
3,編譯模型;
4,擬合模型;
5,評(píng)估模型。
開發(fā)Keras模型
全連接層用Dense表示。我們可以指定層中神經(jīng)元的數(shù)量作為第一參數(shù),指定初始化方法為第二參數(shù),即初始化參數(shù),并且用激活參數(shù)確定激活函數(shù)。既然模型已經(jīng)創(chuàng)建,我們就可以編譯它。我們?cè)诘讓訋?kù)(也稱為后端)用高效數(shù)字庫(kù)編譯模型,底層庫(kù)可以用Theano或TensorFlow。目前為止,我們已經(jīng)完成了創(chuàng)建模型和編譯模型,為進(jìn)行有效計(jì)算做好了準(zhǔn)備。現(xiàn)在可以在PIMA數(shù)據(jù)上運(yùn)行模型了。我們可以在模型上調(diào)用擬合函數(shù)f(),以在數(shù)據(jù)上訓(xùn)練或擬合模型。
我們先從KERAS中的程序開始,
神經(jīng)網(wǎng)絡(luò)一直訓(xùn)練到150個(gè)時(shí)期,并返回精確值。
很多朋友都想知道java怎么調(diào)python?下面就一起來(lái)了解一下吧~
java調(diào)python主要有兩種方法:1.使用Runtime.getRuntime()執(zhí)行腳本文件;2. 將python腳本寫成進(jìn)程為java提供服務(wù),下面是具體的方法介紹:
第一種:使用Runtime.getRuntime()執(zhí)行腳本文件
先建立python腳本文件 demo.py
import?numpy?as?np a?=?np.arange(12).reshape(3,4)print(a)
java調(diào)用python程序并輸出該結(jié)果
import?java.io.BufferedReader;import?java.io.IOException;import?java.io.InputStreamReader;public?class?Demo?{ ????public?static?void?main(String[]?args)?{ ????????//?TODO?Auto-generated?method?stub ????????Process?proc; ????????try?{ ????????????proc?=?Runtime.getRuntime().exec("python?D:\\demo.py");//?執(zhí)行py文件 ????????????//用輸入輸出流來(lái)截取結(jié)果 ????????????BufferedReader?in?=?new?BufferedReader(new?InputStreamReader(proc.getInputStream())); ????????????String?line?=?null; ????????????while?((line?=?in.readLine())?!=?null)?{ ????????????????System.out.println(line); ????????????} ????????????in.close(); ????????????proc.waitFor(); ????????}?catch?(IOException?e)?{ ????????????e.printStackTrace(); ????????}?catch?(InterruptedException?e)?{ ????????????e.printStackTrace(); ????????}? ????}}
如若向python程序中函數(shù)傳遞參數(shù)并執(zhí)行出結(jié)果,下面就舉一例來(lái)說明一下。
同樣建立python腳本文件demo2.py
import?sys def?func(a,b): ????return?(a+b)if?__name__?==?'__main__': ????a?=?[] ????for?i?in?range(1,?len(sys.argv)): ????????a.append((int(sys.argv[i]))) ????print(func(a[0],a[1]))
其中sys.argv用于獲取參數(shù)url1,url2等。而sys.argv[0]代表python程序名,所以列表從1開始讀取參數(shù)。
以上代碼實(shí)現(xiàn)一個(gè)兩個(gè)數(shù)做加法的程序,下面看看在java中怎么傳遞函數(shù)參數(shù),代碼如下:
int?a?=?18;int?b?=?23;try?{ ????String[]?args?=?new?String[]?{?"python",?"D:\\demo2.py",?String.valueOf(a),?String.valueOf(b)?}; ????Process?proc?=?Runtime.getRuntime().exec(args);//?執(zhí)行py文件 ????BufferedReader?in?=?new?BufferedReader(new?InputStreamReader(proc.getInputStream())); ????String?line?=?null; ????while?((line?=?in.readLine())?!=?null)?{ ????????System.out.println(line); ????} ????in.close(); ????proc.waitFor();}?catch?(IOException?e)?{ ????e.printStackTrace();}?catch?(InterruptedException?e)?{ ????e.printStackTrace();}
其中args是String[] { “python”,path,url1,url2 }; ,path是python程序所在的路徑,url1是參數(shù)1,url2是參數(shù)2,以此類推。
2. 將python腳本寫成進(jìn)程為java提供服務(wù)
python腳本文件如下:
import?socketimport?sysimport?threadingimport?numpy?as?npfrom?PIL?import?Imagedef?main(): ????#?創(chuàng)建服務(wù)器套接字 ????serversocket?=?socket.socket(socket.AF_INET,socket.SOCK_STREAM) ????#?獲取本地主機(jī)名稱 ????host?=?socket.gethostname() ????#?設(shè)置一個(gè)端口 ????port?=?12345 ????#?將套接字與本地主機(jī)和端口綁定 ????serversocket.bind((host,port)) ????#?設(shè)置監(jiān)聽最大連接數(shù) ????serversocket.listen(5) ????#?獲取本地服務(wù)器的連接信息 ????myaddr?=?serversocket.getsockname() ????print("服務(wù)器地址:%s"%str(myaddr)) ????#?循環(huán)等待接受客戶端信息 ????while?True: ????????#?獲取一個(gè)客戶端連接 ????????clientsocket,addr?=?serversocket.accept() ????????print("連接地址:%s"?%?str(addr)) ????????try: ????????????t?=?ServerThreading(clientsocket)#為每一個(gè)請(qǐng)求開啟一個(gè)處理線程 ????????????t.start() ????????????pass ????????except?Exception?as?identifier: ????????????print(identifier) ????????????pass ????????pass ????serversocket.close() ????passclass?ServerThreading(threading.Thread): ????#?words?=?text2vec.load_lexicon() ????def?__init__(self,clientsocket,recvsize=1024*1024,encoding="utf-8"): ????????threading.Thread.__init__(self) ????????self._socket?=?clientsocket ????????self._recvsize?=?recvsize ????????self._encoding?=?encoding????????pass ????def?run(self): ????????print("開啟線程.....") ????????try: ????????????#接受數(shù)據(jù) ????????????msg?=?'' ????????????while?True: ????????????????#?讀取recvsize個(gè)字節(jié) ????????????????rec?=?self._socket.recv(self._recvsize) ????????????????#?解碼 ????????????????msg?+=?rec.decode(self._encoding) ????????????????#?文本接受是否完畢,因?yàn)閜ython?socket不能自己判斷接收數(shù)據(jù)是否完畢, ????????????????#?所以需要自定義協(xié)議標(biāo)志數(shù)據(jù)接受完畢 ????????????????if?msg.strip().endswith('over'): ????????????????????msg=msg[:-4] ????????????????????break ??????????? ????????????sendmsg?=?Image.open(msg) ????????????#?發(fā)送數(shù)據(jù) ????????????self._socket.send(("%s"%sendmsg).encode(self._encoding)) ????????????pass ????????except?Exception?as?identifier: ????????????self._socket.send("500".encode(self._encoding)) ????????????print(identifier) ????????????pass ????????finally: ????????????self._socket.close()? ????????print("任務(wù)結(jié)束.....") ???????? ????????pass ????def?__del__(self): ????????passif?__name__?==?"__main__": ????main()
在java代碼中訪問python進(jìn)程的代碼: package?hello;import?java.lang.System;import?java.io.BufferedReader;import?java.io.IOException;import?java.io.InputStreamReader;import?java.net.InetAddress;import?java.net.Socket;import?java.io.OutputStream;import?java.io.PrintStream;import?java.io.InputStream;public?class?hello?{ ????public?static?void?main(String[]?args){ ????????//System.out.println("Hello?World!"); ????????//?TODO?Auto-generated?method?stub ????????try?{ ????????????InetAddress?addr?=?InetAddress.getLocalHost(); ????????????String?host=addr.getHostName(); ????????????//String?ip=addr.getHostAddress().toString();?//獲取本機(jī)ip ????????????//log.info("調(diào)用遠(yuǎn)程接口:host="+ip+",port="+12345); ????????????//?初始化套接字,設(shè)置訪問服務(wù)的主機(jī)和進(jìn)程端口號(hào),HOST是訪問python進(jìn)程的主機(jī)名稱,可以是IP地址或者域名,PORT是python進(jìn)程綁定的端口號(hào) ????????????Socket?socket?=?new?Socket(host,12345); ????????????//?獲取輸出流對(duì)象 ????????????OutputStream?os?=?socket.getOutputStream(); ????????????PrintStream?out?=?new?PrintStream(os); ????????????//?發(fā)送內(nèi)容 ????????????out.print(?"F:\\xxx\\0000.jpg"); ????????????//?告訴服務(wù)進(jìn)程,內(nèi)容發(fā)送完畢,可以開始處理 ????????????out.print("over"); ????????????//?獲取服務(wù)進(jìn)程的輸入流 ????????????InputStream?is?=?socket.getInputStream(); ????????????BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(is,"utf-8")); ????????????String?tmp?=?null; ????????????StringBuilder?sb?=?new?StringBuilder(); ????????????//?讀取內(nèi)容 ????????????while((tmp=br.readLine())!=null) ????????????????sb.append(tmp).append('\n'); ????????????System.out.print(sb); ????????????//?解析結(jié)果 ????????????//JSONArray?res?=?JSON.parseArray(sb.toString()); ????????}?catch?(IOException?e)?{ ????????????e.printStackTrace(); ????????}finally?{ ????????????try?{if(socket!=null)?socket.close();}?catch?(IOException?e)?{} ????????????System.out.print("遠(yuǎn)程接口調(diào)用結(jié)束."); ????????} ??????}}
1.RDD是PariRDD類型
def add1(line):
return line[0] + line[1]
def add2(x1,x2):
return x1 + x2
sc = SparkContext(appName="gridAnalyse")
rdd = sc.parallelize([1,2,3])
list1 = rdd.map(lambda line: (line,1)).map(lambda (x1,x2) : x1 + x2).collect() #只有一個(gè)參數(shù),通過匹配來(lái)直接獲?。ㄙx值給里面對(duì)應(yīng)位置的變量)
list1 = rdd.map(lambda line: (line,1)).map(lambda x1,x2 : x1 + x2).collect() #錯(cuò)誤,相當(dāng)于函數(shù)有兩個(gè)參數(shù)
list2 = rdd.map(lambda line: (line,1)).map(lambda line : line[0] + line[1]).collect() #只有一個(gè)參數(shù),參數(shù)是Tuple或List數(shù)據(jù)類型,再?gòu)募系膶?duì)應(yīng)位置取出數(shù)據(jù)
list3 = rdd.map(lambda line: (line,1)).map(add1).collect() #傳遞函數(shù),將Tuple或List類型數(shù)據(jù)傳給形參
list4 = rdd.map(lambda line: (line,1)).map(add2).collect() #錯(cuò)誤,因?yàn)檩斎胫挥幸粋€(gè),卻有兩個(gè)形參
當(dāng)RDD是PairRDD時(shí),map中可以寫lambda表達(dá)式和傳入一個(gè)函數(shù)。
a、寫lambda表達(dá)式:
可以通過(x1,x2,x3)來(lái)匹配獲取值;或者使用line獲取集合,然后從集合中獲取。
b、傳入函數(shù)
根據(jù)spark具體的transaction OR action 操作來(lái)確定自定義函數(shù)參數(shù)的個(gè)數(shù),此例子中只有一個(gè)參數(shù),從形參(集合類型)中獲取相應(yīng)位置的數(shù)據(jù)。
python查看timer定時(shí)任務(wù)已開啟 的操作方法:Timer定時(shí)任務(wù)
下面是Timer函數(shù)的官方doc介紹信息
"""
Call a function after a specified number of seconds:
t = Timer(30.0, f, args=None, kwargs=None)
t.start()
t.cancel() # stop the timer's action if it's still waiting
"""
第一個(gè)參數(shù)時(shí)指定多長(zhǎng)時(shí)間之后執(zhí)行這個(gè)函數(shù),第二個(gè)參數(shù)時(shí)調(diào)用的函數(shù)名,
后面兩個(gè)是可選函數(shù),作為傳遞函數(shù)需要使用的參數(shù),可以傳遞普通的參數(shù)和字典
t.start() 啟動(dòng)這個(gè)定時(shí)任務(wù),也可以使用t.cancel()在一定的條件來(lái)停止這個(gè)定時(shí)任務(wù),
下面這行代碼表示十秒鐘后調(diào)用一次views_count這個(gè)函數(shù)
Timer(10, views_count).start()
本文中詳解介紹了 pandas 中 transform() 方法的使用
Accepted combinations are:
{0 or ‘index’, 1 or ‘columns’}, default 0 If 0 or ‘index’: apply function to each column. If 1 or ‘columns’: apply function to each row.
Positional arguments to pass to func.
Keyword arguments to pass to func.
A DataFrame that must have the same length as self.
If the returned DataFrame has a different length than self.
transform方法通常是和groupby方法一起連用的
每個(gè)位置被均值取代
內(nèi)建的聚合函數(shù)直接傳遞別名,max\min\sum\mean
向tranform中直接傳遞函數(shù)
在這個(gè)網(wǎng)站上有一個(gè)完整的實(shí)例,解釋了transform方法的使用
You can see in the data that the file contains 3 different orders (10001, 10005 and 10006) and that each order consists has multiple products (aka skus).
The question we would like to answer is: “What percentage of the order total does each sku represent?”
For example, if we look at order 10001 with a total of $576.12, the break down would be:
求出不同商品在所在訂單的價(jià)錢占比
先求出一列占比的值,再和原始數(shù)據(jù)進(jìn)行合并merge
Transform + groupby連用:先分組再求和
分享名稱:python傳遞函數(shù) python值傳遞
當(dāng)前鏈接:http://chinadenli.net/article10/dodiggo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站排名、面包屑導(dǎo)航、定制開發(fā)、網(wǎng)站收錄、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容