国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        如何用Tensorflow框架構建用于食品分類的機器學習模型?

        2021-06-07 17:57
        磐創AI
        關注

        這是數據框的視圖,

        下一步就是制作一個對象,將圖片放入模型中。我們將練習tf.keras.preprocessing.image庫的ImageDataGenerator對象。使用此對象,我們將生成圖像批次。此外,我們可以擴充我們的圖片以擴大數據集的乘積。因為我們還擴展了這些圖片,我們進一步設置了圖像增強技術的參數。

        此外,因為我們應用了一個數據幀作為關于數據集的知識,因此我們將使用flow_from_dataframe方法生成批處理并增強圖片。上面的代碼看起來像這樣from tensorflow.keras.preprocessing.image import ImageDataGenerator
        # Create the ImageDataGenerator object
        train_datagen = ImageDataGenerator(
           featurewise_center=True,
           featurewise_std_normalization=True,
           rotation_range=20,
           width_shift_range=0.2,
           height_shift_range=0.2,
           horizontal_flip=True,

        val_datagen = ImageDataGenerator(
           featurewise_center=True,
           featurewise_std_normalization=True,
           rotation_range=20,
           width_shift_range=0.2,
           height_shift_range=0.2,
           horizontal_flip=True,

        # Generate batches and augment the images
        train_generator = train_datagen.flow_from_dataframe(
           df_train,
           directory='Food-5K/training/',
           x_col='filename',
           y_col='label',
           class_mode='binary',
           target_size=(224, 224),

        val_generator = train_datagen.flow_from_dataframe(
           df_val,
           directory='Food-5K/validation/',
           x_col='filename',
           y_col='label',
           class_mode='binary',
           target_size=(224, 224),

        步驟3:訓練模型

        決定好批次之后,我們可以通過遷移學習技術來訓練模型。因為我們應用了這種方法,所以我們不需要從頭開始執行 CNN 架構。相反,我們將使用當前和以前預訓練的架構。我們將應用 ResNet-50 作為我們新模型的脊椎。我們將生成輸入并根據類別數量調整 ResNet-50 的最后一個線性層ResNet-50。

        構建模型的代碼如下

        from tensorflow.keras.applications import ResNet50
        # Initialize the Pretrained Model
        feature_extractor = ResNet50(weights='imagenet',
                                    input_shape=(224, 224, 3),
                                    include_top=False)
        # Set this parameter to make sure it's not being trained
        feature_extractor.trainable = False
        # Set the input layer
        input_ = tf.keras.Input(shape=(224, 224, 3))
        # Set the feature extractor layer
        x = feature_extractor(input_, training=False)
        # Set the pooling layer
        x = tf.keras.layers.GlobalAveragePooling2D()(x)
        # Set the final layer with sigmoid activation function
        output_ = tf.keras.layers.Dense(1, activation='sigmoid')(x)
        # Create the new model object
        model = tf.keras.Model(input_, output_)
        # Compile it
        model.compile(optimizer='adam',
                    loss='binary_crossentropy',
                    metrics=['accuracy'])
        # Print The Summary of The Model
        model.summary()

        為了訓練模型,我們采用擬合的方法來準備模型。這是代碼,model.fit(train_generator, epochs=20, validation_data=val_generator)

        步驟4:測試模型

        在訓練模型之后,現在讓我們在測試數據集上檢查模型。在擴展中,我們需要結合一個pillow庫來加載和調整圖片大小,以及 scikit-learn 來確定模型性能。我們將練習來自 scikit-learn 庫的分類報告,以生成關于模型執行的報告。此外,我們會喜歡它的混淆矩陣。這是預測實驗數據及其決策的代碼,from PIL import Image
        from sklearn.metrics import classification_report, confusion_matrix
        y_true = []
        y_pred = []
        for i in os.listdir('Food-5K/evaluation'):
           img = Image.open('Food-5K/evaluation/' + i)
           img = img.resize((224, 224))
           img = np.array(img)
           img = np.expand_dims(img, 0)
           
           y_true.append(int(i.split('_')[0]))
           y_pred.append(1 if model.predict(img) > 0.5 else 0)
           
        print(classification_report(y_true, y_pred))
        print()
        print(confusion_matrix(y_true, y_pred))

        從前面的內容可以看出,該模型的性能已超過95%。因此,我們可以在建立圖像分類器 API 的情況下接受此模型。

        步驟5:保存模型

        如果你希望將模型用于后續使用或部署,你可以使用 save 方法保存模型,model.save('./resnet50_food_model')

        如果你需要加載模型,你可以像這樣練習load_model方法,model = tf.keras.models.load_model('./resnet50_food_model')

        下一步是什么

        做得好!現在你已了解如何使用 TensorFlow 執行遷移學習。我希望這項研究能鼓勵你,尤其是那些渴望在數據不足的情況下訓練深度學習模型的人。

        <上一頁  1  2  
        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 尤物一区| 许昌县| 亚洲综合社区| 巍山| 午夜剧场黄色| 浠水县| 鲁鲁美女影院| 亚洲色老头| 亚洲成人性爱网| 国产熟女第三页| 91人人草| 欧美精品久久久| 黑人又粗又长又大| 欧美又粗又大AAA片| 亚洲中字幕| 欧洲一区二区三区| 尹人成人| 甘南县| 亚洲国产制服丝袜| 宝山区| 亚洲熟妇无码成人A片| 亚洲天堂av在线免费| 蓬溪县| 麻豆乱码国产一区二区三区| 五常市| 国产56页| 亚洲色频| 田林县| 无码18禁成人免费| 欧美黑人又粗又长| 平顺县| 小泽玛利亚av无码专区| 一区二区三区免费| 亚洲成人性爱网| 波多野结衣AV一区| 日韩无毛| 欧美涩色| 人妻窝窝| 黑人AV网站| 北条麻妃无码| 囯产精品一区二区三区AV做线 |