Sharecs.net
  • Trang chủ
  • Kho Tài Liệu – Báo Cáo
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
    • Phần Mềm
No Result
View All Result
  • Trang chủ
  • Kho Tài Liệu – Báo Cáo
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
    • Phần Mềm
No Result
View All Result
Sharecs.net
No Result
View All Result
Home Lập Trình Python

Nhận Diện Chó Mèo Python – Tensorflow – Neural Network – Deep Learning

by Nguyễn Tuấn
22/04/2023

Trong bài này mình muốn chia sẻ cho các bạn cách để nhận diện chó mèo python sử dụng TENSORFLOW – MẠNG NƠ RON – DEEP LEARNING.

Một số yêu cầu khi code: Tensorflow 2, Python 3 và tải các thư viện bổ sung, tìm hiểu mạng CNN cho ảnh.

Đầu tiên chúng ta cần import một số thư viện cần dùng như sau:

Nhận Diện Chó Mèo Python
Nhận Diện Chó Mèo Python

Định dạng lại ảnh cho đầu vào:

code python dịnh dạng ảnh
định dạng lại ảnh

Tiếp đến là import data train và tạo mảng chứa các labels:

import data train in python
import data train in python

Xong mình sẽ định danh các mục và tên:

Neural Network
Neural Network

Tiếp đến sẽ khởi tạo mạng nơ ron và các lớp Layer để sử lý dữ liệu:

code nhận diện chó mèo
code nhận diện chó mèo
from keras.callbacks import EarlyStopping, ReduceLROnPlateau
earlystop = EarlyStopping(patience = 10)
learning_rate_reduction = ReduceLROnPlateau(monitor = 'val_accuracy',patience = 2,verbose = 1,factor = 0.5,min_lr = 0.00001)
callbacks = [earlystop,learning_rate_reduction]

df["category"] = df["category"].replace({0:'cat',1:'dog'})
train_df,validate_df = train_test_split(df,test_size=0.20,random_state=42)
train_df = train_df.reset_index(drop=True)
validate_df = validate_df.reset_index(drop=True)
total_train=train_df.shape[0]
total_validate=validate_df.shape[0]
batch_size=20

train_datagen = ImageDataGenerator(rotation_range=15,
                                rescale=1./255,
                                shear_range=0.1,
                                zoom_range=0.2,
                                horizontal_flip=True,
                                width_shift_range=0.1,
                                height_shift_range=0.1
                                )
train_generator = train_datagen.flow_from_dataframe(train_df,
                                                 "./dogs-vs-cats/train/",x_col='filename',y_col='category',
                                                 target_size=Image_Size,
                                                 class_mode='categorical',
                                                 batch_size=batch_size)
validation_datagen = ImageDataGenerator(rescale=1./255)
validation_generator = validation_datagen.flow_from_dataframe(
    validate_df, 
    "./dogs-vs-cats/train/", 
    x_col='filename',
    y_col='category',
    target_size=Image_Size,
    class_mode='categorical',
    batch_size=batch_size
)

epochs=10
history = model.fit_generator(
                              train_generator,
                              epochs=epochs,
                              validation_data=validation_generator,
                              validation_steps=total_validate//batch_size,
                              steps_per_epoch=total_train//batch_size,
                              callbacks=callbacks
                              )


model.save("Model1.h5")


#from keras.models import load_model
#model = load_model('Model.h5')

test_filenames = os.listdir("./dogs-vs-cats/test1")
test_df = pd.DataFrame({'filename': test_filenames})
nb_samples = test_df.shape[0]

########### fixed
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_dataframe(test_df,"./dogs-vs-cats/test1/",
                                                  target_size=Image_Size,
                                                  batch_size=batch_size, class_mode=None,
                                                  shuffle=False
                                                  )
predict = model.predict_generator(test_generator, steps=np.ceil(nb_samples/batch_size))
###########end - fixed
test_df['category'] = np.argmax(predict, axis=-1)
label_map = dict((v,k) for k,v in train_generator.class_indices.items())
test_df['category'] = test_df['category'].replace(label_map)
test_df['category'] = test_df['category'].replace({ 'dog': 1, 'cat': 0 })

sample_test = test_df.head(18)
sample_test.head()
plt.figure(figsize=(12, 24))
for index, row in sample_test.iterrows():
    filename = row['filename']
    category = row['category']
    img = load_img("./dogs-vs-cats/test1/"+filename, target_size=Image_Size)
    plt.subplot(6, 3, index+1)
    plt.imshow(img)
    plt.xlabel(filename + '(' + "{}".format(category) + ')' )
plt.tight_layout()
plt.show()


results={
    0:'cat',
    1:'dog'
}
from PIL import Image
import numpy as np
im=Image.open("./dogs-vs-cats/test/9.jpg") #fixed 
im=im.resize(Image_Size)
im=np.expand_dims(im,axis=0)
im=np.array(im)
im=im/255
pred=model.predict_classes([im])[0]
print(pred,results[pred])

Chạy chương trình:

  1. Python Module.py –> huấn luyện mạng nơ ron và lưu mô hình pre-trained với tên Model.h5
  2. Chú ý chương trình dạy khá lâu với 10 epochs. Code: model.save(“Model1.h5”)
  3. Python gui.py –> chạy giao diện, dự đoán ảnh (sử dụng mô hình đã train Model.h5) Code: model = load_model(‘Model.h5’)

Để xem nhiều hơn về Python các bạn có thể xem tại đây nhé.

Link Tải Project

Note : Pass giải nén sharecs.net

Link Download Fshare
Link Download MediaFire

Cảm ơn các bạn đã ghé thăm. Chúc các bạn thành công!

4.6/5 - (17 bình chọn)
Tags: code python hayNeural NetworkpythonTensorflow
ShareSendTweetShare

Cùng chuyên mục

Code tinh chi so BMI bang JavaScript PHP C Python 2023

Hướng dẫn code tính chỉ số BMI bằng JavaScript – PHP

22/04/2023
15
Thư viện đồ họa trong Python – Source Code Bắn Pháo Hoa

Thư viện đồ họa trong Python – Source Code Bắn Pháo Hoa

22/04/2023
54
Vẽ Biểu Đồ Trong Python – Pip install matplotlib

Vẽ Biểu Đồ Trong Python – Pip install matplotlib

22/04/2023
2k
Code Python Thuật Toán Logistic Regression

Code Python Thuật Toán Logistic Regression

22/04/2023
947
Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

Tạo ứng dụng Chat Socket trong Python mô hình Client – Server

22/04/2023
3.1k
Bài Tập Code Python Đơn Giản Có Lời Giải – Phần 1

Bài tập xử lý ảnh có lời gải – code python ( OpenCV )

22/04/2023
5.5k
Load More

Tài nguyên

Luận văn báo cáo giá rẻ

Cân bằng phương trình phản ứng hóa

Tạo deep link

Custom Css Scrollbar – Render Code

Bài Viết Nổi Bật

  • Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

    Download Video Wallpaper Agatsuma Zenitsu – Anime Kimetsu No Yaiba

    45 shares
    Share 0 Tweet 0
  • 500 Câu Trắc Nghiệm Mạng Máy Tính Phần 1 Có Đáp Án

    0 shares
    Share 0 Tweet 0
  • Hướng Dẫn React Native Build apk File

    0 shares
    Share 0 Tweet 0
  • 500 Câu Trắc Nghiệm Mạng Máy Tính Phần 2 Có Đáp Án

    0 shares
    Share 0 Tweet 0
  • Trắc Nghiệm Mạng Máy Tính Phần 3 Có Đáp Án

    0 shares
    Share 0 Tweet 0

Checkpoint 282 – Cách mở lại tài khoản facebook bị khóa

Top 13 Nguồn Datasets Cho Machine Learning and Deep Learning

Cách đọc file XML trong Java (SAX Parser)

How To Import Excel Spring Boot – Trả Lỗi Trong File

Code Shoppe Tìm Kiếm Biến Thể Sản Phẩm Được Mua Nhiều Nhất

So sánh interface và abstract trong java

Donate

Mời Share’cs ly Cafe 

Liên hệ quảng cáo

Email: Sharecs.net@gmail.com

Hợp tác nội dung: Sharecs rất vinh dự được mời các bạn đóng góp những sản phẩm thiết kế, thủ thuật hay những chia sẻ hữu ích… để cùng chia sẻ rộng rãi tới mọi người!

Giới Thiệu

Sharecs.net là một website/blog cá nhân, chuyên chia sẻ những kiến thức xoay quanh công nghệ như máy tính, internet, phần mềm, lập trình,... Mình hi vọng, Sharecs sẽ mang lại những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

  • Giới Thiệu & Liên Hệ
  • Chính Sách Bảo Mật

CopyRight By Sharecs.net DMCA.com Protection Status

No Result
View All Result
  • Trang chủ
  • Kho Tài Liệu – Báo Cáo
  • Thủ Thuật
    • Thủ thuật máy tính
      • Windows
      • MacOS
      • Linux
    • Thủ thuật internet
    • Thủ thuật phần mềm
  • Lỗi máy tính
    • Lỗi internet
    • Lỗi windows
    • Lỗi phần mềm
  • Lập Trình
    • Lập Trình Java
    • Lập trình Python
    • Lập Trình React Native
    • Code Hay
  • Linh Tinh
    • PhotoShop
    • Tải Video Wallpaper
    • Kho Tools
      • Cân Bằng Phương Trình Hóa Học
      • Custom Css Scrollbar – Render Code
      • Tạo Kí Tự Đặc Biệt Online
      • Tạo Deep Link
    • Tài Liệu – Luận Văn – Báo Cáo
    • Kho Theme Website WordPress
    • Phần Mềm

CopyRight By Sharecs.net DMCA.com Protection Status