發表文章

目前顯示的是有「Tensorflow」標籤的文章

heatmap-視覺化你的模型辨識特徵

圖片
本模型使用ResNet20訓練cifar10資料集保存的權重。 載點 點我 論文出處:Grad-CAM Visual Explanations from Deep Networks via Gradient-Based Localization 簡單來說cnn可以萃取圖片的特徵,越深的捲積層,越可以表現重要,可讓神經網路學習的特徵,Grad-CAM的目的就是提取最後一層的特徵,並且resize為原圖的大小,這就可以視覺化你的模型辨識特徵 程式碼如下: import cv2 import numpy as np from keras.models import load_model #用來啟動 NN from keras import backend as K from matplotlib import pyplot as plt test_image = cv2.resize(cv2.imread('./plane1.jpg'),(32,32)) test_image = np.asarray(test_image.astype("float32")) test_image = test_image/255. test_image = test_image.reshape((1,32,32,3)) model=load_model('./resnet_softmax.h5') preds = model.predict(test_image) print("所有結果resnet_softmax=",preds) print("第"+str(np.argmax(preds[0])+1)+"類") #返回數值最大的索引 #model.summary() model_output = model.output[:, np.argmax(preds[0])] last_conv_layer = model.get_layer('conv2d_22') grads = K.gradients(model_output, last_conv_layer.output)[0] pooled_grads = K.mean...

使用vgg16遷移學習達成訓練目標-2013kaggle

圖片
在深度學習的路上,手寫辨識被稱作深度學習的hello world,那2013年貓狗分類的比賽,也是很多人會遇到的題目,那如何獲得高準確率並且不用很多張圖片呢? 這時候遷移學習(Transfer Learning)就上場了,什麼是遷移學習呢?簡單來說就是拿別人訓練好的模型,把輸出加以修改,來達成你要學習的東西,因此如果你的訓練樣本很少,遷移學習或許是個好選擇。 vgg被用來訓練辨識ImageNet的1000種目標,那我們這次要辨識的目標是貓跟狗,貓跟狗也有在ImageNet的1000種目標裡面,所以很適合用遷移學習來完成。 這次的訓練集為:貓500張,狗500張,這麼少的資料就可以達到90%的準確率 程式碼如下: from keras import models from keras import layers from keras.applications import VGG16 from keras.preprocessing.image import ImageDataGenerator from keras import optimizers import matplotlib.pyplot as plt train_dir = './data/train/' test_dir = './data/validation/' conv_base=VGG16(weights='imagenet',include_top=False,input_shape=(150,150,3)) #載入VGG16 model = models.Sequential() model.add(conv_base) model.add(layers.Flatten()) model.add(layers.Dense(output_dim = 256, activation = 'relu')) model.add(layers.Dense(output_dim = 1, activation = 'sigmoid')) #Dense輸出有幾個output_dim就要改成那個數字,不過輸出只要不是1,activation(激活函數)就必須修改成softmax conv...

以dlib實現人臉辨識打卡系統

圖片
一、    功能 在上班族上班的一天,打卡是非常重要的,打卡系統的存在是讓雇主知道員工的上下班時間,但是打卡鐘也是需要員工手動的把卡片放入打卡鐘裡面,有了人臉辨識打卡系統,打卡鐘跟每天打卡的這個動作就是多餘的了。 這個打卡系統基於 python 跟 dlib 組成,只需要人臉被辨識,就會記錄下時間以及在資料庫尋找人名,完全不需要按鍵的觸發或是編號,因為人臉就是編號。

執行tensorflow時跳出警告訊息解決辦法

執行tensorflow時跳出警告訊息,但是程式還可以執行 是因為numpy版本過新 警告如下: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. 解決方法: $  pip3 uninstall numpy $  sudo pip3 install numpy==1.16

在Ubuntu18.04安裝 Nvidia顯卡驅動+CUDA10+Cudnn7.6.4+Opencv+Tensorflow2.0.0+Keras2.0.3+Yolov3

圖片
第一步 安裝 Nvidia顯卡驅動(GTX1050) $ sudo apt update $ sudo apt-get install dkms build-essential linux-headers-generic $ sudo apt-get install gcc-multilib xorg-dev $ sudo apt-get install freeglut3-dev libx11-dev libxmu-dev install libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev $ ubuntu-drivers devices $ sudo apt install nvidia-430 $ nvidia-smi