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

        python+keras:識別狗的品種,準確率超過80%!

        2020-09-10 10:59
        磐創AI
        關注

        model.fit(train_generator, epochs=5, validation_data=valid_generator, callbacks=[checkpointer])我們使用一個ModelCheckpoint的回調來保存驗證分數較高的模型。通過測試模型,我們得到的準確率只有1%左右使用遷移學習現在,我們使用遷移學習來實現更高的準確率。首先我們下載ResNet-50,可以通過運行下面的代碼來提取相應的訓練集、測試和驗證集:bottleneck_features = np.load('Data/bottleneck_features/DogResnet50Data.npz')train_Resnet50 = bottleneck_features['train']valid_Resnet50 = bottleneck_features['valid']test_Resnet50 = bottleneck_features['test']我們現在再次定義模型,并對提取的特征使用GlobalAveragePooling2D,它將一組特征平均為一個值。最后,如果驗證損失在兩個連續的epoch內沒有增加,我們使用額外的回調來降低學習率;如果驗證損失在連續的5個epoch內沒有增加,可以提前停止訓練。Resnet50_model = tf.keras.models.Sequential()Resnet50_model.add(tf.keras.layers.GlobalAveragePooling2D(input_shape=train_Resnet50.shape[1:]))Resnet50_model.add(tf.keras.layers.Dense(1024, activation='relu'))Resnet50_model.add(tf.keras.layers.Dense(133, activation='softmax'))

        Resnet50_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

        checkpointer = tf.keras.callbacks.ModelCheckpoint(filepath='saved_models/weights_best_Resnet50.hdf5',                                verbose=1, save_best_only=True)early_stopping = tf.keras.callbacks.EarlyStopping(patience=5, monitor='val_loss')

        reduce_lr = tf.keras.callbacks.ReduceLROnPlateau(patience=2, monitor='val_loss')Resnet50_model.fit(train_Resnet50, train_targets,           validation_data=(valid_Resnet50, valid_targets),          epochs=50, batch_size=20, callbacks=[checkpointer, early_stopping, reduce_lr], verbose=1)### 訓練模型最后在測試集上的準確率為82.65%,這與我們白手起家訓練的模型相比,是一個巨大的進步。構建web應用程序對于web應用程序,我們首先編寫了一個helper函數,該函數接受圖像路徑并返回品種。label_to_cat字典將每個數字標簽映射到它的狗品種。def predict_breed(img_path):    '''預測給定圖像的品種'''    # 提取特征    bottleneck_feature = extract_Resnet50(path_to_tensor(img_path))    bottleneck_feature = tf.keras.models.Sequential([                            tf.keras.layers.GlobalAveragePooling2D(input_shape=bottleneck_feature.shape[1:])                        ]).predict(bottleneck_feature).reshape(1, 1, 1, 2048)    # 獲得預測向量    predicted_vector = Resnet50_model.predict(bottleneck_feature)    # 模型預測的犬種    return label_to_cat[np.argmax(predicted_vector)]對于web應用程序,我們將使用flaskweb框架來幫助我們用最少的代碼創建web應用程序。我們定義一個接受圖像的路由,并用狗的品種呈現一個輸出模板@app.route('/upload', methods=['POST','GET'])def upload_file():    if request.method == 'GET':        return render_template('index.html')    else:        file = request.files['image']        full_name = os.path.join(UPLOAD_FOLDER, file.filename)        file.save(full_name)        dog_breed = dog_breed_classifier(full_name)    return render_template('predict.html', image_file_name = file.filename, label = dog_breed)predict.html是分別顯示圖像及其犬種的模板。結論祝賀你!你已經成功地實現了一個狗品種分類器,并且可以準確地分辨出狗的品種。讓我們總結一下我們在這里學到的知識:我們對數據集進行了分析和預處理。機器學習算法需要單獨的訓練集、測試集和驗證集來進行置信預測。我們從零開始使用CNN,由于未能提取特征,所以表現不佳。然后我們使用了遷移學習,準確度大大提高最后,我們構建了一個Flask web應用程序來實現我們的項目封裝我們確實學到了很多東西,但你還可以嘗試很多其他的事情。你可以在heroku上部署web應用程序,也可以嘗試使用不同的層(如Dropout層)來提高準確性。參考鏈接:https://towardsdatascience.com/dont-know-the-breed-of-your-dog-ml-can-help-6558eb5f7f05

        ☆ END ☆

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

        發表評論

        0條評論,0人參與

        請輸入評論內容...

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

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

        暫無評論

        暫無評論

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

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 亚洲第一av| 中文字幕人妻综合另类| 宁波市| 二区av| 国内黄色视频| 91福利导航大全| 黑人又大又粗免费视频| 91TS人妖另类精品系列| 口爆视频| 国产精品xxx| 91视频高清| 武城县| 毛片天堂| 免费jizz| 成人淫网| 制服丝袜亚洲无码| 激情综合区| 亚洲色道| 91在现观看| 精品国产乱子伦一区二区三区,精品一| 宁强县| 国产精成人| 成人精诚精品| 亚洲一区二区av| 九九天堂| 久久草视频在线| 夊夊夊夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲色色色 | 中文日韩欧美| 中文字幕日韩有码| 阳高县| 国内精品久久人妻无码AV探花影视| 热国产综合| 松滋市| 国产AV中文字幕| 美女网站免费| 热国产综合| 影音先锋资源| 咸丰县| 久草精品在线| 超碰老司机| 国产VA网站|