亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何探索和修改從 tf.keras.preprocessing.

如何探索和修改從 tf.keras.preprocessing.

PHP
ABOUTYOU 2023-11-09 16:56:23
這是我使用該函數的方式:dataset = tf.keras.preprocessing.image_dataset_from_directory(    main_directory,    labels='inferred',    image_size=(299, 299),    validation_split=0.1,    subset='training',    seed=123)我想像本示例一樣探索創建的數據集,特別是將其轉換為數據幀的部分pandas。但我的最低目標是檢查標簽和附加的文件數量,只是為了檢查它是否確實按預期創建了數據集(子目錄是其中圖像的相應標簽)。需要明確的是,它main_directory的設置如下:main_directory- class_a  - 000.jpg  - ...- class_b  - 100.jpg  - ...我希望看到數據集顯示其信息,如下所示:label     number of imagesclass_a   100class_b   100此外,是否可以刪除數據集中的標簽和相應圖像?我們的想法是,如果相應的圖像數量小于一定數量或不同的指標,則丟棄它們。當然可以通過其他方式在此函數之外完成,但我想知道這是否確實可能,如果可以,如何實現。
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

我認為使用它glob2來獲取所有文件名,根據需要處理它們,然后創建一個簡單的加載函數來替換image_dataset_from_directory.


獲取您的所有文件:


files = glob2.glob('class_*\\*.jpg')

然后根據需要操作該文件名列表。


然后,創建一個加載圖像的函數:


def load(file_path):

    img = tf.io.read_file(file_path)

    img = tf.image.decode_jpeg(img, channels=3)

    img = tf.image.convert_image_dtype(img, tf.float32)

    img = tf.image.resize(img, size=(299, 299))

    label = tf.strings.split(file_path, os.sep)[0]

    label = tf.cast(tf.equal(label, 'class_a'), tf.int32)

    return img, label

然后創建用于訓練的數據集:


train_ds = tf.data.Dataset.from_tensor_slices(files).map(load).batch(4)

然后訓練:


model.fit(train_ds)


查看完整回答
反對 回復 2023-11-09
  • 1 回答
  • 0 關注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號