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基礎的

Spring 事務配置實戰:過濾無需事務處理的查詢之類操作

log pla ssi pan spl tail gif aop img <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes

RabbitMq 實戰

rabbitmq spring boot (消費者處理消息)RabbitMq消息消費者服務 開發工具Idea和Spring boot來開發的。消息消費目前只是一個簡單的Demo,後續會處理成更智能一些。首先配置文件類,RabbitMqConfig,裏面配置一些用戶名和密碼嗨喲隊列信息。package com.

Wicket實戰概述

rac span 下載 本質 jsf xtend 公式 href tar 今天給大家介紹一個很好的東西。一個被稱作Java平臺上的ASP.NET——Wicket。 什麽是Wicket 什麽是Wicket,假設你用谷歌或其它

Linux系統集群架構線上項目配置實戰

linux 項目 實戰 Linux系統集群架構線上項目配置實戰(一)本文出自 “民工哥博客” 博客,請務必保留此出處http://mingongge.blog.51cto.com/2429897/1971210Linux系統集群架構線上項目配置實戰(一)

機器學習實戰—— 用線性回歸預測波士頓房價

-1 png 機器學習 mage 回歸 線性回歸 blog 分享 機器 機器學習實戰(一)—— 用線性回歸預測波士頓房價

全棧性能測試修煉寶典--Jmeter實戰

div 測試用例 ceo 上下文切換 知識 能力 熱點 mongo rac 性能測試方向職業發展 1、軟件測試發展路線   我們可以暫且把軟件測試職業路線分為3個方向,分別是業務路線、技術路線、管理路線;4個象限,分別為執行層、中層、中高層過渡、高層。   (1)業務路線

mmall 項目實戰項目初始化

ant log 初始 post gpo using base inno ole 1.創建 數據庫 及 表 數據腳本: /* Navicat Premium Data Transfer Source Server : 182.92.82.1

Docker從入門到實戰

roc serve net lin 軟件 系統調用 生命 etc before 一步一步走,寫小白都能看懂的文章,將持續更新中,敬請期待! Docker從入門到實戰(一) 一:容器技術與Docker概念 1 什麽是容器 容器技術並不是一個全新的概念,它又稱為容器虛擬化。虛擬

neural network and deep learning筆記1

.cn arc AD puts ont release 深入 rem hang neural network and deep learning 這本書看了陸陸續續看

MySQL數據庫從入門到實戰

DBA體系 mysql 非關系型數據庫 SQL優化 第一部分:了解DBA體系一、初級DBA應該掌握哪些技能?(運維人員必會知識)1.MySQL安裝部署2.基本參數配置3.備份策略設計與實現 二、中級DBA應該掌握哪些技能?1.故障處理能力(備份或者其他手段)2.MySQL監控能力3.基本優化能

自動化運維工具Ansible實戰簡介和部署

Ansible 自動化運維 一、Ansible的介紹 Ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點。實現了批量系統配置、批量程序部署、批量運行命令等功能。Ansible是基於模塊工作的,本身沒

Android項目實戰: SpannableString與SpannableStringBuilder

append() 同時 uil 註意 1.5 查看 strong 尊重 bject 原文:Android項目實戰(一): SpannableString與SpannableStringBuilder前言: 曾經在一些APP中的一些類似“幫助”&ld

Laravel 完整實戰 —— 搭建及配置

laravel composer 實戰 環境: nginx + php + mysql laravel : 5.5開發環境的搭建略過 安裝 laravel composer create-project laravel/laravel [project-name] --prefer-dist

Spark實戰SparkStreaming集成Kafka

round 形式 寫入 some base cal 接下來 會話 支持 Spark Streaming + Kafka集成指南 Kafka項目在版本0.8和0.10之間引入了一個新的消費者API,因此有兩個獨立的相應Spark Streaming包可用。請選擇正確的包,

Docker基礎入門實戰

art The 開機自啟動 inf 應用程序 51cto 管理 x86 正在 Docker基礎入門實戰第1章 docker簡介1.1 what is DockerDocker是一個開源的應用容器引擎,基於Go語言並遵從Apache2.0協議開源,源代碼部

【原創】MapReduce實戰

tid refs 讀取 sel instance 網站 let 創建 -c 應用場景: 用戶每天會在網站上產生各種各樣的行為,比如瀏覽網頁,下單等,這種行為會被網站記錄下來,形成用戶行為日誌,並存儲在hdfs上。格式如下: 17:03:35.012?pageview?{"d

Flask框架的學習與實戰:開發環境搭建

進行 read 模型 clas tar pychar html itl .html Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎則使用 Jinja2。很多功能的實現都參考了django框架。由於項

微服務分散式事務實戰 專案需求描述和實現步驟

本文通過一個具體例項如何實施springCloud 分散式事務,不對分散式事務理論做探索。由於內容較多,分多個小節來說明 案例需求: 建立2個基於springCloud的微服務,分別訪問不同的資料庫;然後建立一個整合服務,呼叫微服務實現資料的儲存到2個不同的資料庫,要求採用分散式事務,要麼都

機器學習實戰k-近鄰kNNk-Nearest Neighbor

目錄 0. 前言 1. k-近鄰演算法kNN(k-Nearest Neighbor) 2. 實戰案例 2.1. 簡單案例 2.2. 約會網站案例 2.3. 手寫識別案例 學習完機器學習實戰的k-近鄰演算法,簡單的做個筆記。文中