1. 程式人生 > >Udacity Deep Learning課程作業(一)

Udacity Deep Learning課程作業(一)

Udacity的深度學習是Google開設的一門基於TensorFlow完成任務的線上課程,課程短小精悍,包括4章(入門ML/DL,DNN,CNN,RNN)、6個小作業(以ipynb的形式,十分方便友好)和1個大作業(開發實時攝像頭應用)。

有ML/DL基礎的同學,視訊很快可以過完,因此課程精華在於其實戰專案,很有意思。作為G家的課程,算是TensorFlow比較權威的學習tutorial了。

課程連結:這裡
作業連結:這裡

以下是本人的課程作業(一)的程式碼

Problem 1

IPython.display來視覺化一些樣本資料:

from IPython.display import
display, Image def visualize(folders): for folder_path in folders: fnames = os.listdir(folder_path) random_index = np.random.randint(len(fnames)) fname = fnames[random_index] display(Image(filename=os.path.join(folder_path, fname))) print("train_folders") visualize(train_folders) print("test_folders"
) visualize(test_folders)

Problem 2

使用matplotlib.pyplot視覺化樣本:

def visualize_datasets(datasets):
    for dataset in datasets:
        with open(dataset, 'rb') as f:
            letter = pickle.load(f)
            sample_idx = np.random.randint(len(letter))
            sample_image = letter[sample_idx, :, :]
            fig = plt.figure()
            plt.imshow(sample_image)
        break
visualize_datasets(train_datasets) visualize_datasets(test_datasets)

Problem 3

檢查樣本是否平衡(不同樣本的數量差不多):

def check_dataset_is_balanced(datasets, notation=None):
    print(notation)
    for label in datasets:
        with open(label, 'rb') as f:
            ds = pickle.load(f)
            print("label {} has {} samples".format(label, len(ds)))

check_dataset_is_balanced(train_datasets, "training set")
check_dataset_is_balanced(test_datasets, "test set")

Problem 5

統計訓練集、測試集和驗證集出現重複的樣本:

import hashlib

def count_duplicates(dataset1, dataset2):
    hashes = [hashlib.sha1(x).hexdigest() for x in dataset1]
    dup_indices = []
    for i in range(0, len(dataset2)):
        if hashlib.sha1(dataset2[i]).hexdigest() in hashes:
            dup_indices.append(i)
    return len(dup_indices)

data = pickle.load(open('notMNIST.pickle', 'rb'))
print(count_duplicates(data['test_dataset'], data['valid_dataset']))
print(count_duplicates(data['valid_dataset'], data['train_dataset']))
print(count_duplicates(data['test_dataset'], data['train_dataset']))

Problem 6

使用50、100、1000和5000個和全部訓練樣本來訓練一個off-the-shelf模型,可以藉助sklearn.linear_model中的Logistic Regression方法。

def train_and_predict(X_train, y_train, X_test, y_test):
    lr = LogisticRegression()

    X_train = X_train.reshape(X_train.shape[0], 28*28)
    lr.fit(X_train, y_train)

    X_test = X_test.reshape(X_test.shape[0], 28*28)
    print(lr.score(X_test, y_test))

def main():
    X_train = data["train_dataset"]
    y_train = data["train_labels"]

    X_test = data["test_dataset"]
    y_test = data["test_labels"]
    for size in [50, 100, 1000, 5000, None]:
        train_and_predict(X_train[:size], y_train[:size], X_test[:size], y_test[:size])

main()

相關推薦

Udacity Deep Learning課程作業

Udacity的深度學習是Google開設的一門基於TensorFlow完成任務的線上課程,課程短小精悍,包括4章(入門ML/DL,DNN,CNN,RNN)、6個小作業(以ipynb的形式,十分方便友好)和1個大作業(開發實時攝像頭應用)。 有ML/DL基礎的

Udacity Deep Learning課程作業

來到課程最後一次小作業,訓練完word2vec模型後,作業六基於Text8.zip語料訓練一個LSTM模型,用perplexity評價訓練得到語言模型的質量,越低越好。 LSTM Problem 1 num_nodes = 64 grap

Deep Learning in NLP 詞向量和語言模型

                這篇部落格是我看了半年的論文後,自己對 Deep Learning 在 NLP 領域中應用的理解和總結,在此分享。其中必然有侷限性,歡迎各種交流,隨便拍。  Deep Learning 演算法已經在影象和音訊領域取得了驚人的成果,但是在 NLP 領域中尚未見到如此激動人心的結果

Deep Learning讀書筆記:Reducing the Dimensionality of Data with Neural Networks

       這是發表在Science上的一篇文章,是Deep Learning的開山之作,同樣也是我讀的第一篇文章,我的第一篇讀書筆記也從這開始吧。        文章的主要工作是資料的降維,等於說這裡使用深度學習網路主要提取資料中的特徵,但卻並沒有將這個特徵應用到分類等

Deep Learning 4J 學習 異或例子

1.maven <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

(Stanford CS224d) Deep Learning and NLP課程筆記Deep NLP

Stanford大學在2015年開設了一門Deep Learning for Natural Language Processing的課程,廣受好評。並在2016年春季再次開課。我將開始這門課程的學習,並做好每節課的課程筆記放在部落格上。爭取做到每週一更吧。 本文是第一篇。 NLP簡介 NLP,全名Natu

軟件工程導論作業

程序開發 需求 如何 大型軟件 process 項目 大型 公司 獨立 1.什麽是RUP? RUP(Rational Unified Process),統一軟件開發過程,統一軟件過程,是一個面向對象且基於網絡的程序開發方法論。 瑞理統一過程(RUP)是Rational軟件公

2017軟件工程第二次作業

http 字數 行數 博客作業 cnblogs ima 分享 技術分享 images 第二周例行報告 PSP 本周進度條 累積進度圖   博文字數累積折線圖:   代碼行數累積折線圖: PSP餅狀圖 2017軟件工程第二次作業(一)

計算機作業 衡陽 汽車工程學院

分享 png .com alt mage src es2017 width wid 計算機作業 (一)衡陽 汽車工程學院

寒假作業 配置基於接口劃分VLAN靜態配置鏈路類型

接口 基於 watermark 交換 用戶 .com lin 中繼鏈路 ip地址 一、拓撲圖二、組網需求1.如上圖所示,某企業的交換機連接有很多用戶,且相同業務用戶通過不同的設備接入企業網絡。2.為了通信的安全性,同時為了避免廣播風暴,企業希望業務相同用戶之間可以互相訪問,

Java EE 課程作業third- 關於 Java EE的思維導圖

png http class BE www. image target www blog 所用到的軟件:Xmind 所參考的思維導圖:http://www.codeweblog.com/j2ee%E7%9F%A5%E8%AF%86%E4%BD%93%E7%B3%BB%E6%

Shiro入門視頻課程——筆記

安全管理 count 退出 classpath 文件 技術分享 size 三種 tro 視頻課程鏈接:http://edu.51cto.com/course/14122.html Shiro權限框架,主講:湯小洋 一、Shiro簡介 1. 什麽是Shiro ? Apac

【2018版】Spring4.3入門視頻課程——筆記

周期 輔助 short 簡介 enc long utils pre float 視頻課程鏈接:http://edu.51cto.com/course/13056.html Spring,主講:湯小洋 一、Spring簡介 1. Spring是什麽? ? Spring是一

Hibernate框架技術視頻課程——筆記

course flush cte found cti 關閉session localhost trace follow 視頻課程鏈接:http://edu.51cto.com/course/10747.html Hibernate框架技術,主講:湯小洋 一、Hibernat

軟工實踐作業

隊友 希望 失望 遊戲 文檔 發展 創造力 pdf 是個 PDF 問題回答 一點感想 引用鏈接 問題回答 當初你是如何做出選擇計算機專業的決定的? 初高中都在做算法競賽,雖然最後沒走自主招生,但計算機依然是一個不錯的選擇。當初的想法就是:很有趣、很感興趣、我之前

python作業

所有 輸入密碼 用戶名 循環 class 錯誤 print inpu 三次 1、使用while循環輸入 1 2 3 4 5 6 8 9 10 a = 1 while a < 11: if a != 7: print(a) a += 1 2、求

軟工作業:WC.exe

order 開始 就會 語言 != borde design targe enter WC.exe(C語言實現) github傳送門:https://github.com/JJYdesu/WC.git 項目要求 wc.exe 是一個常見的工具,它能統計文本文件的字

tensorflow課程筆記

  MOOC上的tensorflow課程筆記 import tensorflow as tf """ a = tf.constant([1.0,2.0]) #一行兩列的張量 b = tf.constant([3.0,4.0]) #一行兩列的張量 result = a + b

吳恩達deep learning課程作業:Class 4 Week 3 Car detection

作業題是基於YOLO框架做的一個簡單的車輛檢測網路。從課程的學習和練習可以讓我們基本掌握YOLO框架的思路和程式碼的大致編碼,想遷移YOLO框架做自己目標檢測任務的同學可以嘗試自己寫一下作業。在這裡記錄一下練習的作業吧。 1、下載作業題,並將h5檔案放置到到model_data中。h5檔案是包含

python Deep learning 學習筆記3

本節介紹基於Keras的使用預訓練模型方法 想要將深度學習應用於小型影象資料集,一種常用且非常高效的方法是使用預訓練網路。預訓練網路(pretrained network)是一個儲存好的網路,之前已在大型資料集(通常是大規模影象分類任務)上訓練好 使用預訓練網路有兩種方法:特徵提取(feature ext