tensorflow keras入門,深度學習跑起來
說實話安裝tensorflow的cuda支援版本的時候還是看英文的官方教程比較好,中文的太久了,安裝不成功,而且似乎只能通過原始碼安裝,需要安裝java,bazel等工具,然後是cuda的驅動和cudnn,官網英文連結,按這個裝才沒有錯,然後就是安裝keras,這個可以按照中文文件來 keras中文文件,安裝過程每臺電腦也不一樣,自己谷歌解決把,。然後我安裝完了之後還是有一個dot_parser庫沒有安裝成功,不過執行沒有影響,還有老師的泰坦x跑起來是真的快,速度親測比至強的cpu快百倍。。。。深度學習爽的不行
下面是跑自己的資料集和測試,網上都沒有,官網也只有fit,沒有預測的程式碼
下面是訓練的程式碼,安裝中文網站的貓狗分類寫的,用於測試自己的前車識別圖片
注意最後可以只save_weight,但是在用的時候需要載入模型的框架,然後自己再載入模型weight,不方便,不如直接全部保留下來,然後是使用訓練好的模型預測'''This script goes along the blog post "Building powerful image classification models using very little data" from blog.keras.io. It uses data that can be downloaded at: https://www.kaggle.com/c/dogs-vs-cats/data In our setup, we: - created a data/ folder - created train/ and validation/ subfolders inside data/ - created cats/ and dogs/ subfolders inside train/ and validation/ - put the cat pictures index 0-999 in data/train/cats - put the cat pictures index 1000-1400 in data/validation/cats - put the dogs pictures index 12500-13499 in data/train/dogs - put the dog pictures index 13500-13900 in data/validation/dogs So that we have 1000 training examples for each class, and 400 validation examples for each class. In summary, this is our directory structure: ``` data/ train/ veh/ 1.jpg 2.jpg ... noveh/ 1.jpg 2.jpg ... validation/ veh/ 1.jpg 2.jpg ... noveh/ 1.jpg 2.jpg ... ``` ''' from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequential from keras.layers import Conv2D, MaxPooling2D from keras.layers import Activation, Dropout, Flatten, Dense from keras import backend as K import h5py # dimensions of our images. img_width, img_height = 64, 64 train_data_dir = 'data/train' validation_data_dir = 'data/validation' nb_train_samples = 2000 nb_validation_samples = 1000 epochs = 30 batch_size = 32 if K.image_data_format() == 'channels_first': input_shape = (3, img_width, img_height) else: input_shape = (img_width, img_height, 3) ################################################################################# model = Sequential() model.add(Conv2D(32, (3, 3), input_shape=input_shape)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(32, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(64, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Flatten()) model.add(Dense(64)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(1)) model.add(Activation('sigmoid')) model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy']) ################################################################################# ################################################################################## # from keras.optimizers import SGD # model = Sequential() # # input: 100x100 images with 3 channels -> (100, 100, 3) tensors. # # this applies 32 convolution filters of size 3x3 each. # model.add(Conv2D(32, (3, 3), activation='relu', input_shape=input_shape)) # model.add(Conv2D(32, (3, 3), activation='relu')) # model.add(MaxPooling2D(pool_size=(2, 2))) # model.add(Dropout(0.25)) # model.add(Conv2D(64, (3, 3), activation='relu')) # model.add(Conv2D(64, (3, 3), activation='relu')) # model.add(MaxPooling2D(pool_size=(2, 2))) # model.add(Dropout(0.25)) # model.add(Flatten()) # model.add(Dense(256, activation='relu')) # model.add(Dropout(0.5)) # model.add(Dense(1, activation='softmax')) # sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) # model.compile(loss='binary_crossentropy', optimizer=sgd) ################################################################################## ######################################################################### # model = Sequential() # model.add(Dense(64, input_dim=20, activation='relu')) # model.add(Dropout(0.5)) # model.add(Dense(64, activation='relu')) # model.add(Dropout(0.5)) # model.add(Dense(1, activation='sigmoid')) # model.compile(loss='binary_crossentropy', # optimizer='rmsprop', # metrics=['accuracy']) ######################################################################### # this is the augmentation configuration we will use for training train_datagen = ImageDataGenerator( rescale=1. / 255, shear_range=0.1, zoom_range=0.1, horizontal_flip=True) # this is the augmentation configuration we will use for testing: # only rescaling test_datagen = ImageDataGenerator(rescale=1. / 255) train_generator = train_datagen.flow_from_directory( train_data_dir, target_size=(img_width, img_height), batch_size=batch_size, class_mode='binary') validation_generator = test_datagen.flow_from_directory( validation_data_dir, target_size=(img_width, img_height), batch_size=batch_size, class_mode='binary') model.fit_generator( train_generator, steps_per_epoch=nb_train_samples // batch_size, epochs=epochs, validation_data=validation_generator, validation_steps=nb_validation_samples // batch_size) #model.save_weights('first_try.h5') model.save('first_try.h5')
也可以通過下面的方式儲存模型
import h5py from keras.models import model_from_json
json_string = model.to_json()
open('my_model_architecture.json','w').write(json_string)
model.save_weights('my_model_weights.h5')
載入模型
model = model_from_json(open('my_model_architecture.json').read()) model.load_weights('my_model_weights.h5')
然後是載入模型進行預測
import keras
from keras.models import load_model
from keras.models import Sequential
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from keras import backend as K
import cv2
import numpy as np
import h5py
import os
#model = Sequential()
model = load_model('first_try.h5')
num_test=1000
img = load_img('pic/0.png') # this is a PIL image
xx = img_to_array(img) # this is a Numpy array with shape (3, 150, 150)
#print xx
#x = x.reshape((1,) + x.shape) # this is a Numpy array with shape (1, 3, 64, 64)
# print xx.shape
# print K.image_data_format()
batch_x = np.zeros((num_test,) + xx.shape, dtype=K.floatx())
for i in range(num_test):
#path='pic/'+str(i)+'.png';
path='/home/cx/Desktop/tensorflow_test/the_first_keras/data/train/no_veh/'+str(i)+'.png'
#print path
img = load_img(path) # this is a PIL image
x = img_to_array(img) # this is a Numpy array with shape (3, 150, 150)
#img2=array_to_img(img)
# cv2.imshow('test',x)
# cv2.waitKey(0)
batch_x[i] = x
# for i in range(num_test):
# img = array_to_img(batch_x[i], scale=True)
# fname = '{prefix}_{index}_{hash}.{format}'.format(prefix='test',
# index= i,
# hash=np.random.randint(1e4),
# format='png')
# img.save(os.path.join('pic2', fname))
#classes = model.predict_proba(batch_x)
classes = model.predict_classes(batch_x)
count=0
print '\n'
for i in classes:
if (i==[1]):
count+=1
print count
#print classes
不出意外的話效果是不好的,,畢竟這個多層神經網路很簡單,並不能很好的分類,下一篇我們用預訓練的高階網路再來跑自己的資料集
相關推薦
tensorflow keras入門,深度學習跑起來
說實話安裝tensorflow的cuda支援版本的時候還是看英文的官方教程比較好,中文的太久了,安裝不成功,而且似乎只能通過原始碼安裝,需要安裝java,bazel等工具,然後是cuda的驅動和cudnn,官網英文連結,按這個裝才沒有錯,然後就是安裝keras,這個可以按
【Tensorflow keras】輕量級深度學習框架 Keras簡介
Keras是基於Theano的一個深度學習框架,它的設計參考了Torch,用Python語言編寫,是一個高度模組化的神經網路庫,支援GPU和CPU。 使用文件在這:http://keras.io/, 中文文件在這:http://keras-cn.readthedocs.io
深度學習,周志華,機器學習,西瓜書,TensorFlow,Google,吳軍,數學之美,李航,統計學習方法,吳恩達,深度學習筆記,pdf下載
1. 機器學習入門經典,李航《統計學習方法》 2. 周志華的《機器學習》pdf 3.《數學之美》吳軍博士著pdf 4. Tensorflow 實戰Google深度學習框架.pdf 5.《TensorFlow實戰》黃文堅 高清完整PDF 6. 復旦大
Ubuntu 18.04 搭建帶GPU的TensorFlow、Keras、Pytorch深度學習開發環境(不用手動安裝cudnn和cuda)
Ubuntu 18.04 搭建帶GPU的TensorFlow、Keras、Pytorch深度學習開發環境(不用手動安裝cudnn和cuda) 對學習深度學習的新手來說,環境搭建沒有大神指導會比較麻煩,今天介紹一種簡單、簡單、非常簡單的環境搭建方法。 1.安裝Anaconda
Deeplearning4j 實戰(8) : Keras為媒介匯入Tensorflow/Theano等其他深度學習庫的模型
在之前的幾篇部落格中,我直接通過Deeplearning4j進行建模、訓練以及評估預測。但在實際使用中,各個團隊未必都會將Deeplearning4j作為首選的開源庫。這樣一來,模型的複用就變得非常困難,無形中增加了重複勞動的成本。雖然我們可以自己開發一套不同庫之間模型轉換的工具,但是這需要對轉換雙
TensorFlow入門-07.深度學習與深層神經網路
0.深度學習的定義(維基百科): 一類通過多層非線性變換對高複雜性資料建模演算法的合集。 1.深度學習與深層神經網路的關係: 因為深層神經網路時實現“多層非線性變換”最常用的一種方法,所以在實際中基本上可以認為深度學習就是深層神經網路的代名詞。 2.深度學習的兩個重要
TensorFlow遊樂場及神經網路簡介,我以《Tensorflow:實戰Google深度學習框架》為主,基礎最重要
轉載:https://blog.csdn.net/broadview2006/article/details/80128755 本文將通過TensorFlow遊樂場來快速介紹神經網路的主要功能。TensorFlow遊樂場(http://playground.tensorflow.org)是一個通
使用 Keras + TensorFlow 開發一個複雜深度學習模型
本帖最後由 Oner 於 2017-5-25 19:37 編輯問題導讀:1. 為什麼選擇Keras?2. 怎麼安裝Keras,並且把TensorFlow作為後端?3. Keras序列模型是什麼?4. 如何使用 Keras 儲存和恢復預訓練的模型?5. 如何使用Keras API開發VGG卷積神經網路?6. 如
keras實現常用深度學習模型LeNet,AlexNet,ZFNet,VGGNet,GoogleNet,Resnet
LeNet #coding=utf-8 from keras.models import Sequential from keras.layers import Dense,Flatten from keras.layers.con
人工智能,深度學習
代碼 語言 機器學習 數據處理 核心 learn caffe lib scikit 1.人工智能的核心 --》 機器學習 --》 深度學習 --》 神經網絡 2.深度學習的工作流程: a。訓練樣本 b。特征抽取 c。學習函數 d。預測 3.人工智能的運用範圍: 自然
人工智慧,機器學習,神經網路,深度學習的關係
目錄 機器學習 有監督學習和無監督學習 神經網路 剛剛接觸人工智慧的內容時,經常性的會看到人工智慧,機器學習,深度學習還有神經網路的不同的術語,一個個都很高冷,以致於傻傻分不清到底它們之間是什麼樣的關係,很多時候都認為是一個東西的不同表達而已,看了一些具體的介紹後才漸漸有了一個大
38套大資料,雲端計算,架構,資料分析師,Hadoop,Spark,Storm,Kafka,人工智慧,機器學習,深度學習,專案實戰視訊教程
38套大資料,雲端計算,架構,資料分析師,Hadoop,Spark,Storm,Kafka,人工智慧,機器學習,深度學習,專案實戰視訊教程 視訊課程包含: 38套大資料和人工智慧高階課包含:大資料,雲端計算,架構,資料探勘實戰,實時推薦系統實戰,電視收視率專案實戰,實時流統計專案實戰,離線電
更快更強,深度學習新庫fastai“落戶”PyTorch
幾天前,有人統計了歷年ICLR論文錄用者使用的深度學習框架,發現雖然TensorFlow還高居榜首,但PyTorch近一年來的使用資料已經翻了3倍,可以和TF比肩。這是個令人驚訝的訊息,也讓不少從業者開始正視這一發展趨勢,籌備“雙修”事宜。在下文中,論智給讀者帶來的是fast.ai釋出的一個簡便、好用的P
華為李航 NLP 有 5 個基本問題,深度學習有4個做得很好
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Tensorflow keras入門教程
目錄 1、Tensorflow與Keras 2、安裝內建Keras的Tensorflow 3、Tensorflow內建的Keras教程 3.1、匯入tf.keras 3.2、建立一個簡單的模型 3.2.1、順序模型
《TensorFlow:實戰Google深度學習框架》--5.2.1 MNIST手寫識別問題(程式已改進)
目錄 MNIST資料集介紹: TensorFlow完整訓練MNIST資料集(程式已改進): 本篇部落格涉及很多本書第4章的知識:啟用函式、指數衰減的學習率設定、正則化、滑動平均等知識。如有疑問請參考本部落格關於第4章記錄介紹。 MNIST資料集介紹: MNIST資料集是N
基於Ubuntu + anaconda + tensorflow + jupyter的Python深度學習開發環境配置
1.啟用Anaconda環境 下載anaconda並拷貝到安裝目錄中並解壓,下載地址為: https://repo.anaconda.com/archive/Anaconda2-5.3.0-Linux-x86_64.sh 跳轉到anaconda的bin目錄,啟用命令為
Java,大資料,機器學習,深度學習,學習資源
Java,大資料,機器學習,深度學習,學習資源 Java 基礎 Java 程式設計思想 Java Web 和大資料 Spark 中文文件 Storm 中文文件 Kafka 中文文件 Flink 中文文件 Beam 中
人工智慧,深度學習,計算機視覺,自然語言處理,機器學習,百度網盤視訊教程
人工智慧,深度學習,計算機視覺,自然語言處理,機器學習視訊教程下載: 1. CS224D 2. NLP到Word2vec 3. Opencv3影象處理 4. Tensorflow 5. 機器學習 6. 人工智慧課程 7. 聊天機器人視訊教程 8. 自然語言處理 獲取檔案下載連結