【深度學(xué)習(xí)】嘿馬深度學(xué)習(xí)筆記第4篇:TensorFlow介紹,學(xué)習(xí)目標(biāo)【附代碼文檔】

本教程的知識點為:深度學(xué)習(xí)介紹 1.1 深度學(xué)習(xí)與機(jī)器學(xué)習(xí)的區(qū)別 TensorFlow介紹 2.4 張量 2.4.1 張量(Tensor) 2.4.1.1 張量的類型 TensorFlow介紹 1.2 神經(jīng)網(wǎng)絡(luò)基礎(chǔ) 1.2.1 Logistic回歸 1.2.1.1 Logistic回歸 TensorFlow介紹 總結(jié) 每日作業(yè) 神經(jīng)網(wǎng)絡(luò)與tf.keras 1.3 神經(jīng)網(wǎng)絡(luò)基礎(chǔ) 神經(jīng)網(wǎng)絡(luò)與tf.keras 1.3 Tensorflow實現(xiàn)神經(jīng)網(wǎng)絡(luò) 1.3.1 TensorFlow keras介紹 1.3.2 案例:實現(xiàn)多層神經(jīng)網(wǎng)絡(luò)進(jìn)行時裝分類 神經(jīng)網(wǎng)絡(luò)與tf.keras 1.4 深層神經(jīng)網(wǎng)絡(luò) 為什么使用深層網(wǎng)絡(luò) 1.4.1 深層神經(jīng)網(wǎng)絡(luò)表示 卷積神經(jīng)網(wǎng)絡(luò) 3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN)原理 為什么需要卷積神經(jīng)網(wǎng)絡(luò) 原因之一:圖像特征數(shù)量對神經(jīng)網(wǎng)絡(luò)效果壓力 卷積神經(jīng)網(wǎng)絡(luò) 3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN)原理 為什么需要卷積神經(jīng)網(wǎng)絡(luò) 原因之一:圖像特征數(shù)量對神經(jīng)網(wǎng)絡(luò)效果壓力 卷積神經(jīng)網(wǎng)絡(luò) 2.2案例:CIFAR100類別分類 2.2.1 CIFAR100數(shù)據(jù)集介紹 2.2.2 API 使用 卷積神經(jīng)網(wǎng)絡(luò) 2.4 BN與神經(jīng)網(wǎng)絡(luò)調(diào)優(yōu) 2.4.1 神經(jīng)網(wǎng)絡(luò)調(diào)優(yōu) 2.4.1.1 調(diào)參技巧 卷積神經(jīng)網(wǎng)絡(luò) 2.4 經(jīng)典分類網(wǎng)絡(luò)結(jié)構(gòu) 2.4.1 LeNet-5解析 2.4.1.1 網(wǎng)絡(luò)結(jié)構(gòu) 卷積神經(jīng)網(wǎng)絡(luò) 2.5 CNN網(wǎng)絡(luò)實戰(zhàn)技巧 2.5.1 遷移學(xué)習(xí)(Transfer Learning) 2.5.1.1 介紹 卷積神經(jīng)網(wǎng)絡(luò) 總結(jié) 每日作業(yè) 商品物體檢測項目介紹 1.1 項目演示 商品物體檢測項目介紹 3.4 Fast R-CNN 3.4.1 Fast R-CNN 3.4.1.1 RoI pooling YOLO與SSD 4.3 案例:SSD進(jìn)行物體檢測 4.3.1 案例效果 4.3.2 案例需求 商品檢測數(shù)據(jù)集訓(xùn)練 5.2 標(biāo)注數(shù)據(jù)讀取與存儲 5.2.1 案例:xml讀取本地文件存儲到pkl 5.2.1.1 解析結(jié)構(gòu)

完整筆記資料代碼->:https://gitee.com/yinuo112/AI/tree/master/深度學(xué)習(xí)/嘿馬深度學(xué)習(xí)筆記/note.md

感興趣的小伙伴可以自取哦~


全套教程部分目錄:


部分文件圖片:

TensorFlow介紹

說明TensorFlow的數(shù)據(jù)流圖結(jié)構(gòu)
應(yīng)用TensorFlow操作圖
說明會話在TensorFlow程序中的作用
應(yīng)用TensorFlow實現(xiàn)張量的創(chuàng)建懂缕、形狀類型修改操作
應(yīng)用Variable實現(xiàn)變量op的創(chuàng)建
應(yīng)用Tensorboard實現(xiàn)圖結(jié)構(gòu)以及張量值的顯示
應(yīng)用tf.train.saver實現(xiàn)TensorFlow的模型保存以及加載
應(yīng)用tf.app.flags實現(xiàn)命令行參數(shù)添加和使用
應(yīng)用TensorFlow實現(xiàn)線性回歸

總結(jié)

每日作業(yè)

神經(jīng)網(wǎng)絡(luò)與tf.keras

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

學(xué)習(xí)目標(biāo)

  • 目標(biāo)

    • 了解感知機(jī)結(jié)構(gòu)癣亚、作用以及優(yōu)缺點
    • 了解tensorflow playground的使用
    • 說明感知機(jī)與神經(jīng)網(wǎng)絡(luò)的聯(lián)系
    • 說明神經(jīng)網(wǎng)絡(luò)的組成
  • 應(yīng)用

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

人工神經(jīng)網(wǎng)絡(luò)( Artificial Neural Network论衍, 簡寫為ANN)也簡稱為神經(jīng)網(wǎng)絡(luò)(NN)寨典。是一種模仿生物神經(jīng)網(wǎng)絡(luò)(動物的中樞神經(jīng)系統(tǒng)来吩,特別是大腦)結(jié)構(gòu)和功能的 計算模型。經(jīng)典的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包含三個層次的神經(jīng)網(wǎng)絡(luò)聊倔。分別輸入層棚唆,輸出層以及隱藏層。

網(wǎng)絡(luò)結(jié)構(gòu)

其中每層的圓圈代表一個神經(jīng)元冗栗,隱藏層和輸出層的神經(jīng)元有輸入的數(shù)據(jù)計算后輸出演顾,輸入層的神經(jīng)元只是輸入。

  • 神經(jīng)網(wǎng)絡(luò)的特點

    • 每個連接都有個權(quán)值
    • 同一層神經(jīng)元之間沒有連接
    • 最后的輸出結(jié)果對應(yīng)的層也稱之為全連接層

神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的重要算法隅居,用途在圖像(如圖像的分類钠至、檢測)和自然語言處理(如文本分類、聊天等)

那么為什么設(shè)計這樣的結(jié)構(gòu)呢胎源?首先從一個最基礎(chǔ)的結(jié)構(gòu)說起棉钧,神經(jīng)元。以前也稱之為感知機(jī)涕蚤。神經(jīng)元就是要模擬人的神經(jīng)元結(jié)構(gòu)掰盘。

神經(jīng)元

一個神經(jīng)元通常具有多個樹突,主要用來接受傳入信息赞季;而軸突只有一條,軸突尾端有許多軸突末梢可以給其他多個神經(jīng)元傳遞信息奢驯。軸突末梢跟其他神經(jīng)元的樹突產(chǎn)生連接申钩,從而傳遞信號。這個連接的位置在生物學(xué)上叫做“突觸”瘪阁。

要理解神經(jīng)網(wǎng)絡(luò)撒遣,其實要從感知機(jī)開始。

1.3.1.1 感知機(jī)(PLA: Perceptron Learning Algorithm))

感知機(jī)就是模擬這樣的大腦神經(jīng)網(wǎng)絡(luò)處理數(shù)據(jù)的過程管跺。感知機(jī)模型如下圖:

感知機(jī)

感知機(jī)是一種最基礎(chǔ)的分類模型义黎,前半部分類似于回歸模型。感知機(jī)最基礎(chǔ)是這樣的函數(shù)豁跑,而邏輯回歸用的sigmoid廉涕。這個感知機(jī)具有連接的權(quán)重和偏置

感知機(jī)公式

我們通過一個平臺去演示,就是tensorflow playground

1.3.2 playground使用

playground

網(wǎng)址:[

那么在這整個分類過程當(dāng)中,是怎么做到這樣的效果那要受益于神經(jīng)網(wǎng)絡(luò)的一些特點

兩類數(shù)據(jù)分類

要區(qū)分一個數(shù)據(jù)點是橙色的還是藍(lán)色的狐蜕,你該如何編寫代碼宠纯?也許你會像下面一樣任意畫一條對角線來分隔兩組數(shù)據(jù)點,定義一個閾值以確定每個數(shù)據(jù)點屬于哪一個組层释。

其中 b 是確定線的位置的閾值婆瓜。通過分別為 x1 和 x2 賦予權(quán)重 w1 和 w2,你可以使你的代碼的復(fù)用性更強(qiáng)贡羔。

直線方程

此外廉白,如果你調(diào)整 w1 和 w2 的值,你可以按你喜歡的方式調(diào)整線的角度乖寒。你也可以調(diào)整 b 的值來移動線的位置猴蹂。所以你可以重復(fù)使用這個條件來分類任何可以被一條直線分類的數(shù)據(jù)集。但問題的關(guān)鍵是程序員必須為 w1宵统、w2 和 b 找到合適的值——即所謂的參數(shù)值晕讲,然后指示計算機(jī)如何分類這些數(shù)據(jù)點。

1.3.2.1 playground簡單兩類分類結(jié)果

playground兩類

但是這種結(jié)構(gòu)的線性的二分類器马澈,但不能對非線性的數(shù)據(jù)并不能進(jìn)行有效的分類瓢省。

感知機(jī)結(jié)構(gòu),能夠很好去解決與痊班、或等問題勤婚,但是并不能很好的解決異或等問題。我們通過一張圖來看涤伐,有四個樣本數(shù)據(jù)

與問題:每個樣本的兩個特征同時為1馒胆,結(jié)果為1

或問題:每個樣本的兩個特征一個為1,結(jié)果為1

異或:每個樣本的兩個特征相同為0凝果, 不同為1

根據(jù)上述的規(guī)則來進(jìn)行劃分祝迂,我們很容易建立一個線性模型

與或問題

相當(dāng)于給出這樣的數(shù)據(jù)

復(fù)雜數(shù)據(jù)1
復(fù)雜數(shù)據(jù)2

1.3.2.2 單神經(jīng)元復(fù)雜的兩類-playground演示

復(fù)雜兩類數(shù)據(jù)分類1

那么怎么解決這種問題呢?其實我們多增加幾個感知機(jī)即可解決器净?也就是下圖這樣的結(jié)構(gòu)型雳,組成一層的結(jié)構(gòu)?

單層感知機(jī)

1.3.2.3 多個神經(jīng)元效果演示

復(fù)雜兩類數(shù)據(jù)分類

神經(jīng)網(wǎng)絡(luò)與tf.keras

1.4 神經(jīng)網(wǎng)絡(luò)原理

學(xué)習(xí)目標(biāo)

  • 目標(biāo)

    • 說明神經(jīng)網(wǎng)絡(luò)的分類原理
    • 說明softmax回歸
    • 說明交叉熵?fù)p失
  • 應(yīng)用

神經(jīng)網(wǎng)絡(luò)的主要用途在于分類山害,那么整個神經(jīng)網(wǎng)絡(luò)分類的原理是怎么樣的纠俭?我們還是圍繞著損失、優(yōu)化這兩塊去說浪慌。神經(jīng)網(wǎng)絡(luò)輸出結(jié)果如何分類冤荆?

神經(jīng)網(wǎng)絡(luò)如何分類

神經(jīng)網(wǎng)絡(luò)解決多分類問題最常用的方法是設(shè)置n個輸出節(jié)點,其中n為類別的個數(shù)权纤。

任意事件發(fā)生的概率都在0和1之間钓简,且總有某一個事件發(fā)生(概率的和為1)乌妒。如果將分類問題中“一個樣例屬于某一個類別”看成一個概率事件,那么訓(xùn)練數(shù)據(jù)的正確答案就符合一個概率分布涌庭。如何將神經(jīng)網(wǎng)絡(luò)前向傳播得到的結(jié)果也變成概率分布呢芥被?Softmax回歸就是一個常用的方法。

1.4.1 softmax回歸

Softmax回歸將神經(jīng)網(wǎng)絡(luò)輸出轉(zhuǎn)換成概率結(jié)果

softmax公式
softmax回歸
softmax展開
  • softmax特點

如何理解這個公式的作用呢坐榆?看一下計算案例

假設(shè)輸出結(jié)果為:2.3, 4.1, 5.6
softmax的計算輸出結(jié)果為:
y1_p = e^2.3/(e^2.3+e^4.1+e^5.6)
y1_p = e^4.1/(e^2.3+e^4.1+e^5.6)
y1_p = e^5.6/(e^2.3+e^4.1+e^5.6)

這樣就把神經(jīng)網(wǎng)絡(luò)的輸出也變成了一個概率輸出

識別輸出概率

那么如何去衡量神經(jīng)網(wǎng)絡(luò)預(yù)測的概率分布和真實答案的概率分布之間的距離拴魄?

1.4.2 交叉熵?fù)p失

1.4.2.1 公式

交叉熵?fù)p失公式

為了能夠衡量距離,目標(biāo)值需要進(jìn)行one-hot編碼席镀,能與概率值一一對應(yīng)匹中,如下圖

交叉損失理解

它的損失如何計算?

0log(0.10)+0log(0.05)+0log(0.15)+0log(0.10)+0log(0.05)+0log(0.20)+1log(0.10)+0log(0.05)+0log(0.10)+0log(0.10)

上述的結(jié)果為1log(0.10)豪诲,那么為了減少這一個樣本的損失顶捷。神經(jīng)網(wǎng)絡(luò)應(yīng)該怎么做?所以會提高對應(yīng)目標(biāo)值為1的位置輸出概率大小屎篱,由于softmax公式影響服赎,其它的概率必定會減少。只要這樣進(jìn)行調(diào)整這樣是不是就預(yù)測成功了=徊ァV芈恰!G厥俊缺厉!

提高對應(yīng)目標(biāo)值為1的位置輸出概率大小

1.4.2.2 損失大小

神經(jīng)網(wǎng)絡(luò)最后的損失為平均每個樣本的損失大小。對所有樣本的損失求和取其平均值

1.4.3 梯度下降算法

目的:使損失函數(shù)的值找到最小值

方式:梯度下降

函數(shù)的梯度(gradient)指出了函數(shù)的最陡增長方向隧土。梯度的方向走提针,函數(shù)增長得就越快。那么按梯度的負(fù)方向走曹傀,函數(shù)值自然就降低得最快了辐脖。模型的訓(xùn)練目標(biāo)即是尋找合適的 w 與 b 以最小化代價函數(shù)值。假設(shè) w 與 b 都是一維實數(shù)皆愉,那么可以得到如下的 J 關(guān)于 w 與 b 的圖:

可以看到揖曾,此成本函數(shù) J 是一個凸函數(shù)

參數(shù)w和b的更新公式為:

<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>w</mi><mo>:</mo><mo>=</mo><mi>w</mi><mo>?</mo><mi>α</mi><mfrac><mrow><mi>d</mi><mi>J</mi><mo>(</mo><mi>w</mi><mo separator="true">,</mo><mi>b</mi><mo>)</mo></mrow><mrow><mi>d</mi><mi>w</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">w := w - \alpha\frac{dJ(w, b)}{dw}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:1.01em;"></span><span class="strut bottom" style="height:1.355em;vertical-align:-0.345em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02691em;">w</span><span class="mrel">:</span><span class="mrel">=</span><span class="mord mathit" style="margin-right:0.02691em;">w</span><span class="mbin">?</span><span class="mord mathit" style="margin-right:0.0037em;">α</span><span class="mord reset-textstyle textstyle uncramped"><span class="mopen sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.345em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord scriptstyle cramped mtight"><span class="mord mathit mtight">d</span><span class="mord mathit mtight" style="margin-right:0.02691em;">w</span></span></span></span><span style="top:-0.22999999999999998em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.485em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mord scriptstyle uncramped mtight"><span class="mord mathit mtight">d</span><span class="mord mathit mtight" style="margin-right:0.09618em;">J</span><span class="mopen mtight">(</span><span class="mord mathit mtight" style="margin-right:0.02691em;">w</span><span class="mpunct mtight">,</span><span class="mord mathit mtight">b</span><span class="mclose mtight">)</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span><span class="mclose sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span></span></span></span>,<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>b</mi><mo>:</mo><mo>=</mo><mi>b</mi><mo>?</mo><mi>α</mi><mfrac><mrow><mi>d</mi><mi>J</mi><mo>(</mo><mi>w</mi><mo separator="true">,</mo><mi>b</mi><mo>)</mo></mrow><mrow><mi>d</mi><mi>b</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">b := b - \alpha\frac{dJ(w, b)}{db}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:1.01em;"></span><span class="strut bottom" style="height:1.355em;vertical-align:-0.345em;"></span><span class="base textstyle uncramped"><span class="mord mathit">b</span><span class="mrel">:</span><span class="mrel">=</span><span class="mord mathit">b</span><span class="mbin">?</span><span class="mord mathit" style="margin-right:0.0037em;">α</span><span class="mord reset-textstyle textstyle uncramped"><span class="mopen sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.345em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle cramped mtight"><span class="mord scriptstyle cramped mtight"><span class="mord mathit mtight">d</span><span class="mord mathit mtight">b</span></span></span></span><span style="top:-0.22999999999999998em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.485em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span><span class="reset-textstyle scriptstyle uncramped mtight"><span class="mord scriptstyle uncramped mtight"><span class="mord mathit mtight">d</span><span class="mord mathit mtight" style="margin-right:0.09618em;">J</span><span class="mopen mtight">(</span><span class="mord mathit mtight" style="margin-right:0.02691em;">w</span><span class="mpunct mtight">,</span><span class="mord mathit mtight">b</span><span class="mclose mtight">)</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;"></span></span></span></span></span><span class="mclose sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span></span></span></span>

注:其中 α 表示學(xué)習(xí)速率亥啦,即每次更新的 w 的步伐長度。當(dāng) w 大于最優(yōu)解 w′ 時练链,導(dǎo)數(shù)大于 0翔脱,那么 w 就會向更小的方向更新。反之當(dāng) w 小于最優(yōu)解 w′ 時媒鼓,導(dǎo)數(shù)小于 0届吁,那么 w 就會向更大的方向更新错妖。迭代直到收斂。

通過平面來理解梯度下降過程:

1.4.4 網(wǎng)絡(luò)原理總結(jié)

我們不會詳細(xì)地討論可以如何使用反向傳播和梯度下降等算法訓(xùn)練參數(shù)疚沐。訓(xùn)練過程中的計算機(jī)會嘗試一點點增大或減小每個參數(shù)暂氯,看其能如何減少相比于訓(xùn)練數(shù)據(jù)集的誤差,以望能找到最優(yōu)的權(quán)重亮蛔、偏置參數(shù)組合痴施。

傳播算法演示

tf.keras介紹

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市究流,隨后出現(xiàn)的幾起案子辣吃,更是在濱河造成了極大的恐慌,老刑警劉巖芬探,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件神得,死亡現(xiàn)場離奇詭異,居然都是意外死亡偷仿,警方通過查閱死者的電腦和手機(jī)哩簿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酝静,“玉大人节榜,你說我怎么就攤上這事⌒稳耄” “怎么了全跨?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長亿遂。 經(jīng)常有香客問我浓若,道長,這世上最難降的妖魔是什么蛇数? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任挪钓,我火速辦了婚禮,結(jié)果婚禮上耳舅,老公的妹妹穿的比我還像新娘碌上。我一直安慰自己,他們只是感情好浦徊,可當(dāng)我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布馏予。 她就那樣靜靜地躺著,像睡著了一般盔性。 火紅的嫁衣襯著肌膚如雪霞丧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天冕香,我揣著相機(jī)與錄音蛹尝,去河邊找鬼后豫。 笑死,一個胖子當(dāng)著我的面吹牛突那,可吹牛的內(nèi)容都是我干的挫酿。 我是一名探鬼主播,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼愕难,長吁一口氣:“原來是場噩夢啊……” “哼早龟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起务漩,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤拄衰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饵骨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翘悉,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年居触,在試婚紗的時候發(fā)現(xiàn)自己被綠了妖混。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡轮洋,死狀恐怖制市,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弊予,我是刑警寧澤祥楣,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站汉柒,受9級特大地震影響误褪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碾褂,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一兽间、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧正塌,春花似錦嘀略、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鸠天,卻和暖如春逮壁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工窥淆, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巍杈。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓忧饭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親筷畦。 傳聞我的和親對象是個殘疾皇子词裤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,595評論 2 350

推薦閱讀更多精彩內(nèi)容