亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

遞歸神經(jīng)網(wǎng)絡(luò)不可思議的有效性

Drinkey / 2150人閱讀

摘要:遞歸神經(jīng)網(wǎng)絡(luò)有一些不可思議的地方,有些時(shí)候,模型與你期望的相差甚遠(yuǎn),許多人認(rèn)為是非常難訓(xùn)練,那么究竟是什么呢就有這篇文章來(lái)帶給大家。遞歸神經(jīng)網(wǎng)絡(luò)有一些不可思議的地方。但是我們正在不斷超越自己那么究竟是什么呢遞歸神經(jīng)網(wǎng)絡(luò)序列。

遞歸神經(jīng)網(wǎng)絡(luò)有一些不可思議的地方,有些時(shí)候,模型與你期望的相差甚遠(yuǎn),許多人認(rèn)為是RNNS非常難訓(xùn)練,那么RNNs究竟是什么呢?就有這篇文章來(lái)帶給大家。

遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)有一些不可思議的地方。我仍然記得我訓(xùn)練的第一個(gè)用于 圖片字幕的遞歸網(wǎng)絡(luò)。從花幾十分鐘訓(xùn)練我的第一個(gè)嬰兒模型(相當(dāng)隨意挑選的超參數(shù))開始,到訓(xùn)練出能夠針對(duì)圖像給出有意義描述的模型。有些時(shí)候,模型對(duì)于輸出結(jié)果質(zhì)量的簡(jiǎn)單程度的比例,會(huì)與你的期望相差甚遠(yuǎn),而這還僅僅是其中一點(diǎn)。有如此令人震驚結(jié)果,許多人認(rèn)為是因?yàn)镽NNs非常難訓(xùn)練(事實(shí)上,通過(guò)多次試驗(yàn),我得出了相反的結(jié)論)。一年前:我一直在訓(xùn)練RNNs,我多次見證了它們的強(qiáng)大的功能和魯棒性,而且它們的輸出結(jié)果同樣讓我感到有趣。這篇文章將會(huì)給你展現(xiàn)它不可思議的地方。

我們將訓(xùn)練一個(gè)RNNs讓它一個(gè)字符一個(gè)字符地生成文本,然后我們思考“這怎么可能?”

順便說(shuō)句,在講述這篇文章的同時(shí),我同樣會(huì)將代碼上傳到 Github 上,這樣你就可以基于多層LSTMs來(lái)訓(xùn)練字符級(jí)語(yǔ)言模型。你向它輸入大量的文本,它會(huì)學(xué)習(xí)并產(chǎn)生類似的文本。你也可以用它來(lái)重新運(yùn)行我下面的代碼。但是我們正在不斷超越自己;那么RNNs究竟是什么呢?

遞歸神經(jīng)網(wǎng)絡(luò)

序列。你可能會(huì)問:是什么讓遞歸神經(jīng)網(wǎng)絡(luò)如此特殊?Vanilla神經(jīng)網(wǎng)絡(luò)(卷積網(wǎng)絡(luò)也一樣)較大的局限之處就是它們API的局限性:它們將固定大小的向量作為輸入(比如一張圖片),然后輸出一個(gè)固定大小的向量(比如不同分類的概率)。還不止這些:這些模型按照固定的計(jì)算步驟來(lái)(比如模型中層的數(shù)量)實(shí)現(xiàn)這樣的輸入輸出。遞歸網(wǎng)絡(luò)更令人興奮的主要原因是,它允許我們對(duì)向量序列進(jìn)行操作:輸入序列、輸出序列、或大部分的輸入輸出序列。通過(guò)幾個(gè)例子可以具體理解這點(diǎn):

? ? Automated conversion

? ? #REDIRECT [[Christianity]]

?

這個(gè)模型完全拼湊出了timestamp,id等等。同樣,注意到它以正確的嵌套順序適當(dāng)?shù)拈]合了正確的標(biāo)簽。如果你有興趣了解更多,這里有 100,000 characters of sampled wikipedia

代數(shù)幾何(Latex)

以上結(jié)果表明,該模型在學(xué)習(xí)復(fù)雜句法結(jié)構(gòu)方面表現(xiàn)得相當(dāng)不錯(cuò)。這些結(jié)果令人印象深刻,我的實(shí)驗(yàn)伙伴( Justin Johnson )和我打算在結(jié)構(gòu)上再深入研究,我們使用這本關(guān)于代數(shù)棧/幾何的 書 。我們下載了Latex的源文件(16MB),然后訓(xùn)練了一個(gè)多層的LSTM。令人驚訝的是,由Latex產(chǎn)生的樣本幾乎是已經(jīng)匯總好了的。我們不得不介入并手動(dòng)修復(fù)了一些問題,這樣你就得到了合理的數(shù)學(xué)推論,這是相當(dāng)驚人的:

代數(shù)幾何樣本(假的), 真正的PDF文件在這 。

這是另一份樣本:

?

產(chǎn)生了更多假的代數(shù)幾何,嘗試處理圖像(右)

正如上面你所看到的那樣,有些時(shí)候這個(gè)模型試圖生成LaTeX圖像,但很明顯它并不明白圖像的具體意思。同樣我很喜歡模型選擇跳過(guò)證明過(guò)程的那部分(“Proof omitted”,左上角)。當(dāng)然,Latex有相對(duì)困難的結(jié)構(gòu)化句法格式,我自己都還沒有完全掌握。為舉例說(shuō)明,下面是模型中的一個(gè)原始樣本(未被編輯):

egin{proof}

We may assume that $mathcal{I}$ is an abelian sheaf on $mathcal{C}$.

item Given a morphism $Delta : mathcal{F} o mathcal{I}$

is an injective and let $mathfrak q$ be an abelian sheaf on $X$.

Let $mathcal{F}$ be a fibered complex. Let $mathcal{F}$ be a category.

egin{enumerate}

item hyperref[setain-construction-phantom]{Lemma}

label{lemma-characterize-quasi-finite}

Let $mathcal{F}$ be an abelian quasi-coherent sheaf on $mathcal{C}$.

Let $mathcal{F}$ be a coherent $mathcal{O}_X$-module. Then

$mathcal{F}$ is an abelian catenary over $mathcal{C}$.

item The following are equivalent

egin{enumerate}

item $mathcal{F}$ is an $mathcal{O}_X$-module.

end{lemma}

這份樣本來(lái)自一個(gè)相對(duì)合適的模型,其中顯示出了一些常見錯(cuò)誤。比如,模型打開了一個(gè)egin{proof}環(huán)境,但是卻以end{lemma}結(jié)束。這個(gè)問題我們必須手動(dòng)修復(fù),這可能是由于依賴關(guān)系太長(zhǎng)而導(dǎo)致的:當(dāng)這個(gè)模型做完了 proof過(guò)程,它就忘記了它是在做proof還是lemma了。同樣的,當(dāng)模型打開了一個(gè)egin{enumerate}環(huán)境,然后卻忘記關(guān)閉它了。我們發(fā)現(xiàn),當(dāng)我們使用更大/更好的模型的時(shí)候,這種情況出現(xiàn)得就較少了,盡管如此,這些問題還是會(huì)出現(xiàn)。

Linux源代碼

我想看看這個(gè)模型處理結(jié)構(gòu)化數(shù)據(jù)的極限,所以為了這一終極目標(biāo),我打算開始編寫一些代碼,特別的,我瀏覽了 Github上Linux repo 所有的原始資料和頭文件,把它們串在一起形成一個(gè)單一的巨大文件(474MB大小的C代碼)(我本來(lái)打算只訓(xùn)練內(nèi)核,但是它只有16MB)。然后,我花了幾天時(shí)間訓(xùn)練出了大小剛好適合我GPU的3層LSTM網(wǎng)絡(luò)。這些模型有大約1000萬(wàn)個(gè)參數(shù),然而這對(duì)于RNN網(wǎng)絡(luò)來(lái)說(shuō)還是微不足道的。結(jié)果非常有趣:

/*

?* Increment the size file of the new incorrect UI_FILTER group information

?* of the size generatively.

?*/

static int indicate_policy(void)

{

? int error;

? if (fd == MARN_EPT) {

? ? /*

? ? ?* The kernel blank will coeld it to userspace.

? ? ?*/

? ? if (ss->segment < mem_total)

? ? ? unblock_graph_and_set_blocked();

? ? else

? ? ? ret = 1;

? ? goto bail;

? }

? segaddr = in_SB(in.addr);

? selector = seg / 16;

? setup_works = true;

? for (i = 0; i < blocks; i++) {

? ? seq = buf[i++];

? ? bpf = bd->bd.next + i * search;

? ? if (fd) {

? ? ? current = blocked;

? ? }

? }

? rw->name = "Getjbbregs";

? bprm_self_clearl(&iv->version);

? regs->new = blocks[(BPF_STATS << info->historidac)] | PFMR_CLOBATHINC_SECONDS << 12;

? return segtable;

}

這代碼整體上看起來(lái)非常棒。我認(rèn)為它不會(huì)馬上就能編譯通過(guò),但是當(dāng)你滾動(dòng)查看這些代碼的時(shí)候給你的感覺是這是一個(gè)非常強(qiáng)大的C代碼庫(kù)。注意到,RNN到處隨機(jī)生成代碼片段和注釋。它很少會(huì)犯語(yǔ)法錯(cuò)誤。比如,它適當(dāng)?shù)氖褂昧俗址愋?、指針概念等。同樣它正確打開和關(guān)閉了代碼塊{[,并且學(xué)習(xí)將代碼縮進(jìn)。一處常見的錯(cuò)誤就是它不能跟蹤變量名:它常常會(huì)使用未定義的變量(比如上面出現(xiàn)的rw),或者聲明它從來(lái)不用的變量(比如上面的int error),或者返回一個(gè)不存在的變量。讓我們來(lái)看看更多的案例。下面是另外一個(gè)代碼片段,顯示了RNN學(xué)習(xí)操作數(shù)組的情況:

/*

?* If this error is set, we will need anything right after that BSD.

?*/

static void action_new_function(struct s_stat_info *wb)

{

? unsigned long flags;

? int lel_idx_bit = e->edd, *sys & ~((unsigned long) *FIRST_COMPAT);

? buf[0] = 0xFFFFFFFF & (bit << 4);

? min(inc, slist->bytes);

? printk(KERN_WARNING "Memory allocated x/x, "

? ? "original MLL instead "),

? ? min(min(multi_run - s->len, max) * num_data_in),

? ? frame_pos, sz + first_seg);

? div_u64_w(val, inb_p);

? spin_unlock(&disk->queue_lock);

? mutex_unlock(&s->sock->mutex);

? mutex_unlock(&func->mutex);

? return disassemble(info->pending_bh);

}

static void num_serial_settings(struct tty_struct *tty)

{

? if (tty == tty)

? ? disable_single_st_p(dev);

? pci_disable_spool(port);

? return 0;

}

static void do_command(struct seq_file *m, void *v)

{

? int column = 32 << (cmd[2] & 0x80);

? if (state)

? ? cmd = (int)(int_state ^ (in_8(&ch->ch_flags) & Cmd) ? 2 : 1);

? else

? ? seq = 1;

? for (i = 0; i < 16; i++) {

? ? if (k & (1 << 1))

? ? ? pipe = (in_use & UMXTHREAD_UNCCA) +

? ? ? ? ((count & 0x00000000fffffff8) & 0x000000f) << 8;

? ? if (count == 0)

? ? ? sub(pid, ppc_md.kexec_handle, 0x20000000);

? ? pipe_set_bytes(i, 0);

? }

? /* Free our user pages pointer to place camera if all dash */

? subsystem_info = &of_changes[PAGE_SIZE];

? rek_controls(offset, idx, &soffset);

? /* Now we want to deliberately put it to device */

? control_check_polarity(&context, val, 0);

? for (i = 0; i < COUNTER; i++)

? ? seq_puts(s, "policy ");

}

注意到,在第二個(gè)函數(shù)中,模型進(jìn)行了這樣的比較tty == tty,這是永遠(yuǎn)成立的。但是,至少這次變量tty只在這個(gè)函數(shù)中起作用!最后一個(gè)函數(shù),注意到代碼沒有返回任何值,但是這是正確的因?yàn)楹瘮?shù)的返回值聲明成了void。但是,前兩個(gè)函數(shù)同樣聲明成了void返回類型,卻返回了數(shù)值。這又是一個(gè)由于長(zhǎng)期迭代導(dǎo)致的常見錯(cuò)誤。

有些時(shí)候模型會(huì)決定現(xiàn)在是時(shí)候產(chǎn)生一個(gè)新的文件了。這通常是有趣的部分:首先模型一個(gè)一個(gè)字符記住GNU許可證,然后include幾個(gè)頭文件,聲明一些宏,然后就開始生成代碼部分:

/*

?* ?Copyright (c) 2006-2010, Intel Mobile Communications. ?All rights reserved.

?*

?* ? This program is free software; you can Redistribute it and/or modify it

?* under the terms of the GNU General Public License version 2 as published by

?* the Free Software Foundation.

?*

?* ? ? ? ?This program is distributed in the hope that it will be useful,

?* but WITHOUT ANY WARRANTY; without even the implied warranty of

?* ? MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ?See the

?*

?* ?GNU General Public License for more details.

?*

?* ? You should have received a copy of the GNU General Public License

?* ? ?along with this program; if not, write to the Free Software Foundation,

?* ?Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

?*/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define REG_PG ? ?vesa_slot_addr_pack

#define PFM_NOCOMP ?AFSR(0, load)

#define STACK_DDR(type) ? ? (func)

#define SWAP_ALLOCATE(nr) ? ? (e)

#define emulate_sigs() ?arch_get_unaligned_child()

#define access_rw(TST) ?asm volatile("movd %%esp, %0, %3" : : "r" (0)); ?

? if (__type & DO_READ)

static void stat_PC_SEC __read_mostly offsetof(struct seq_argsqueue,

? ? ? ? ? pC>[1]);

static void

os_prefix(unsigned long sys)

{

#ifdef CONFIG_PREEMPT

? PUT_PARAM_RAID(2, sel) = get_state_state();

? set_pid_sum((unsigned long)state, current_state_str(),

? ? ? ? ? ?(unsigned long)-1->lr_full; low;

}

這里有太多有趣的地方可以講述了,關(guān)于這部分我可能可以寫一篇完整的博客來(lái)講述。但是在這里我就省略這部分了,如果你有興趣查看,請(qǐng)點(diǎn)擊 1MB of sampled Linux code

了解到底發(fā)生了什么

我們可以看出,最終訓(xùn)練出的結(jié)果是令人印象深刻的,但是這一切都是如何工作的?讓我們通過(guò)運(yùn)行兩個(gè)快速的實(shí)驗(yàn)來(lái)簡(jiǎn)要探索下。

訓(xùn)練中樣本的演變

首先,探索模型訓(xùn)練過(guò)程中樣本文本是如何演變的是件有趣的事,比如,我用列夫·托爾斯泰的《戰(zhàn)爭(zhēng)與和平》訓(xùn)練了一個(gè)LSTM網(wǎng)絡(luò),然后每100次迭代訓(xùn)練就生成樣本。100次迭代后模型生成了隨機(jī)、混亂的樣本:

tyntd-iafhatawiaoihrdemot ?lytdws ?e ,tfti, astai f ogoh eoase rrranbyne "nhthnee e?

plia tklrgd t o idoe ns,smtt ? h ne etie h,hregtrs nigtike,aoaenns lng

但是,注意到模型最少知道了要在每個(gè)“單詞”間加上空格。有些時(shí)候會(huì)加上兩個(gè)空格。同樣模型不知道逗號(hào)后面通常跟著空格。300次迭代后我們可以看到模型開始有了引號(hào)和句號(hào)的概念:

"Tmont thithey" fomesscerliund

Keushey. Thom here

sheulke, anmerenith ol sivh I lalterthend Bleipile shuwy fil on aseterlome

coaniogennc Phe lism thond hon at. MeiDimorotion in ther thize."

這次單詞之間同樣由空格隔開,而且模型開始知道在句子末尾加上句號(hào)。500次迭代:

we counter. He stutn co des. His stanted out one ofler that concossions and was?

to gearang reay Jotrets and with fre colt otf paitt thin wall. Which das stimn?

現(xiàn)在模型會(huì)拼寫最短、最常見單詞,比如“we”,“He”,“His”,“Which”,“and”等。700次迭代的時(shí)候,我們得到了更像英語(yǔ)的文本:

Aftair fall unsuch that the hall for Prince Velzonski"s that me of

her hearly, and behs to so arwage fiving were to it beloge, pavu say falling misfort?

how, and Gogition is so overelical and ofter.

在經(jīng)過(guò)1200次迭代后,我們發(fā)現(xiàn)模型開始使用引號(hào)和問號(hào)/感嘆號(hào)了,與此同時(shí)也學(xué)會(huì)了更長(zhǎng)的單詞:

"Kite vouch!" he repeated by her

door. "But I would be done and quarts, feeling, then, son is people...."

經(jīng)過(guò)2000次迭代,模型能夠正確拼寫的單詞,引號(hào),名字等:

"Why do what that day," replied Natasha, and wishing to himself the fact the

princess, Princess Mary was easier, fed in had oftened him.

Pierre aking his soul came to the packs and drove up his father-in-law women.

大體上我們可以這么認(rèn)為,首先模型發(fā)現(xiàn)了單詞-空格這樣普遍的結(jié)構(gòu),然后迅速學(xué)會(huì)拼寫單詞;從學(xué)習(xí)拼寫簡(jiǎn)單單詞開始到最后學(xué)習(xí)拼寫長(zhǎng)單詞。在單詞中顯現(xiàn)出主題內(nèi)容(一般依賴于長(zhǎng)期性)在很多次迭代后才出現(xiàn)。

RNN預(yù)測(cè)結(jié)果和神經(jīng)元激活可視化

可視化有趣的另一個(gè)方面是可以按字符來(lái)觀察預(yù)測(cè)分布。在下面的可視化圖中,我們向Wikipedia RNN模型中輸入了校驗(yàn)好的數(shù)據(jù)集(藍(lán)色/綠色的行)中的字符,然后在每個(gè)字符下面,我們列出了(紅色部分)模型預(yù)測(cè)會(huì)出現(xiàn)的前5個(gè)字符,顏色深淺根據(jù)它們概率大小決定(深紅:預(yù)測(cè)準(zhǔn)確,白色:不準(zhǔn)確)。比如,注意到有一連串字符是模型非常有信心能夠預(yù)測(cè)準(zhǔn)確的(對(duì)http://www.序列模型置信度非常高)。

輸入字符序列(藍(lán)色/綠色)的顏色取決于RNN隱藏層中隨機(jī)選擇的神經(jīng)元的激活情況。定義綠色=非常興奮,藍(lán)色=不是那么興奮(對(duì)于那些熟悉LSTMs細(xì)節(jié)的人來(lái)說(shuō),這些就是隱藏向量中[-1,1]范圍內(nèi)的值,也就是經(jīng)過(guò)門限操作和tanh函數(shù)的LSTM單元狀態(tài))。直觀的,下圖顯示了在RNN“大腦”讀取輸入序列時(shí)一些神經(jīng)元的激活情況。不同的神經(jīng)元可能有不同的模式;下面我們將會(huì)看到我找到的4個(gè)不同的神經(jīng)元,我認(rèn)為這幾個(gè)是有趣的,并且是可解釋的(許多其他的并不容易解釋):

此圖中高亮的神經(jīng)元似乎對(duì)URL極度興奮,URL以外的地方就不那么興奮。LSTM似乎會(huì)用這種神經(jīng)元來(lái)記住它是否在URL之中。

在這張圖中,當(dāng)RNN在[[]]標(biāo)記之中時(shí),高亮的神經(jīng)元表現(xiàn)極度興奮,所以在這種標(biāo)記之外就沒那么興奮,在神經(jīng)元碰到字符“[”的時(shí)候不會(huì)表現(xiàn)得興奮,它一定要等到出現(xiàn)第二個(gè)“[”才會(huì)激活。計(jì)算模型是否碰到了一個(gè)還是兩個(gè)“[”的任務(wù)似乎可以用一個(gè)不同的神經(jīng)元完成。

在這里,我們可以看出在[[]]環(huán)境中,神經(jīng)元有著線性的變化。換句話說(shuō),它的激活函數(shù)給了RNN中[[]]范圍的一種基于時(shí)間的坐標(biāo)系統(tǒng)。RNN可以通過(guò)這些信息或多或少的依賴于字符在[[]]中出現(xiàn)的早/晚來(lái)生成不同的字符(有可能是這樣)。

這是另外一個(gè)神經(jīng)元,它有著更個(gè)性化的行為:它整體上比較平淡無(wú)常,但是碰到“www”中第一個(gè)“w”的時(shí)候突然就開始變得興奮。RNN可能可以使用這種神經(jīng)元來(lái)計(jì)算“www”序列的長(zhǎng)度,這樣它就知道是否應(yīng)該再添加一個(gè)“w”還是開始添加URL。

當(dāng)然,由于RNN隱藏狀態(tài)的龐大性,高維度性和分布式特性,很多這樣的結(jié)論都稍微要加上特別說(shuō)明才能理解。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/4331.html

相關(guān)文章

  • 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)

    摘要:要學(xué)習(xí)深度學(xué)習(xí),那么首先要熟悉神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱的一些基本概念。網(wǎng)絡(luò)徑向基函數(shù)網(wǎng)絡(luò)是一種單隱層前饋神經(jīng)網(wǎng)絡(luò),它使用徑向基函數(shù)作為隱層神經(jīng)元激活函數(shù),而輸出層則是對(duì)隱層神經(jīng)元輸出的線性組合。 閱讀目錄1. 神經(jīng)元模型2. 感知機(jī)和神經(jīng)網(wǎng)絡(luò)3. 誤差逆?zhèn)鞑ニ惴?. 常見的神經(jīng)網(wǎng)絡(luò)模型5. 深度學(xué)習(xí)6. 參考內(nèi)容目前,深度學(xué)習(xí)(Deep Learning,簡(jiǎn)稱DL)在算法領(lǐng)域可謂是大紅大紫,現(xiàn)在不只是...

    starsfun 評(píng)論0 收藏0
  • php面試總結(jié)

    摘要:由一層函數(shù)調(diào)用進(jìn)入下一層函數(shù)調(diào)用的遞推。此時(shí),中的一個(gè)稱為孤兒的類就會(huì)收留這個(gè)對(duì)象。禁止訪問服務(wù)器拒絕請(qǐng)求服務(wù)器找不到請(qǐng)求的頁(yè)面服務(wù)器內(nèi)部錯(cuò)誤壞的網(wǎng)關(guān)一般是網(wǎng)關(guān)服務(wù)器請(qǐng)求后端服務(wù)時(shí),后端服務(wù)沒有按照協(xié)議正確返回結(jié)果。 持續(xù)更新。。。。 php 1. 簡(jiǎn)述 php 中的 autoload Autoload 的加載機(jī)制,當(dāng)通過(guò) new 來(lái)實(shí)例化一個(gè)類時(shí),PHP 會(huì)通過(guò)定義的 autol...

    greatwhole 評(píng)論0 收藏0
  • arXiv上五篇頂尖深度學(xué)習(xí)論文都講了些什么?

    摘要:自從年深秋,他開始在上撰寫并公開分享他感興趣的機(jī)器學(xué)習(xí)論文。本文選取了上篇閱讀注釋的機(jī)器學(xué)習(xí)論文筆記。希望知名專家注釋的深度學(xué)習(xí)論文能使一些很復(fù)雜的概念更易于理解。主要講述的是奧德賽因?yàn)榧づ撕I癫ㄙ惗喽兄聻?zāi)禍。 Hugo Larochelle博士是一名謝布克大學(xué)機(jī)器學(xué)習(xí)的教授,社交媒體研究科學(xué)家、知名的神經(jīng)網(wǎng)絡(luò)研究人員以及深度學(xué)習(xí)狂熱愛好者。自從2015年深秋,他開始在arXiv上撰寫并...

    WilsonLiu95 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<