TensorFlow導入數據集


Keras為方便用戶使用數據集,提供了一個函數keras.dateset.調用這個函數方便的使用數據集。

但不幸的是,數據源的網址被牆了,但我找到了MNIST數據集。

詳細網址見:

https://blog.csdn.net/Houchaoqun_XMU/article/details/78492718?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param

常用的數據集有MNIST,CIFAR10/100

MNIST

共有10個數字,每個圖片像素是28*28,由於是灰度的圖片,通道是1。

第一個元組代表一共有60k的圖片,每個圖片像素28*28

第二個元組代表這些圖片分別編了9個碼。

每個圖片由numpy數組存儲,每個像素點在0-255分布

 

把原本范圍為1-9的y轉成one_hot編碼。

CIFAR10/100

參考代碼:

https://blog.csdn.net/zxpcz/article/details/102690823?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160510724919724836734903%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160510724919724836734903&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-102690823.pc_first_rank_v2_rank_v28&utm_term=%E5%8A%A0%E8%BD%BDcifar&spm=1018.2118.3001.4449

 這個數據集中,有10種圖片,比如,貓,狗,每種圖片有又有10個圖片,所以叫CIFAR100

tf.data.DataSet

from_tensor_slices()

db=tf.data.Dataset.from_tensor_slices(x_test)
next(iter(db)).shape

from_tensor_slices()可以方便的將numpy類型轉成tensor類型

shuffle 

打散功能,為了防止機器學到一些奇奇怪怪的規律。

batch

讀取數據一般是分批讀取。

例子:

def prepare_mnist_features_and_labels(x,y):
    x=tf.cast(x,tf.float32)/255.0#將tensor x 轉成0~1
    y=tf.cast(y,int64)
    return x,y
def mnist_dataset():
    (x,y),(x_val,y_val) = datasets.fashion_mnist.load_data()
    y = tf.one_hot(y,depth=10)  #將結果轉成0~9
    y_val=tf.one_hot(y,val,depth=10)
    
    ds = tf.data.Dataset.from_tensor_slices((x,y))
    ds=ds.map(prepare_mnist_features_and_labels)
    ds=ds.shuffle(60000).batch(100)
    ds_val = tf.data.Dataset.from_tensor_slices((x_val,y_val))
    ds_val=ds_val.map(prepare_mnist_features_and_labels)
    ds_val=ds_val.shuffle(60000).batch(100)
    return ds,ds_val

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM