sách gpt4 ăn đã đi

Giải pháp cho vấn đề get_value của máy ảnh chạy ngày càng chậm hơn

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 25 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này có giải pháp cho vấn đề get_value của keras chạy ngày càng chậm. Nó được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

Hàm get_value trong khung học sâu của máy ảnh chạy ngày càng chậm hơn và mức tiêu thụ bộ nhớ tăng lên.

Mô tả vấn đề

Giải pháp cho vấn đề get_value của máy ảnh chạy ngày càng chậm hơn

Như trong hình trên, sau khi kiểm tra theo dõi mức tiêu thụ bộ nhớ và thời gian, người ta nhận thấy rằng hàm keras.backend.get_value() khiến chương trình ngày càng chậm hơn và gây rò rỉ bộ nhớ nghiêm trọng;

Nhìn vào cách triển khai bên trong của hàm này, chúng tôi thấy rằng lõi chính là x.eval(session=get_session()). Theo một số bài đăng trên blog, câu lệnh này có thể là câu lệnh cốt lõi gây rò rỉ bộ nhớ và chạy chậm; nhận thấy tốc độ chạy ngày càng chậm.

Lý do: Hàm xe.eval sẽ thêm các nút mới vào biểu đồ tf; điều này cũng khiến biểu đồ tf ngày càng lớn hơn và rò rỉ bộ nhớ;.

Giải pháp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nhập khẩu tensorflow.keras.backend là K
 
định nghĩa lấy_phiên_của_tôi(gpu_fraction = 0,1 ):
     '''Giả sử bạn có 6GB bộ nhớ GPU và muốn phân bổ ~2GB'''
 
     số_luồng = os.environ.get( 'OMP_NUM_THREADS' )
     gpu_tùy_chọn = tf.GPUOptions(per_process_gpu_memory_fraction = gpu_phân số)
 
     nếu như số_luồng:
         trở lại tf. Phiên(cấu hình = tf.ConfigProto(
             gpu_tùy_chọn = gpu_options, luồng song song nội bộ = số_luồng))
     khác :
         trở lại tf. Phiên(cấu hình = tf.ConfigProto(gpu_options = gpu_options))
 
K.set_session(lấy_phiên_của_tôi())

Như được hiển thị trong hình trên, trước khi sử dụng tensorflow (nghĩa là ở phía trước tệp dự án), tôi đã tùy chỉnh phiên, sau đó sử dụng phiên tùy chỉnh để đặt keras.backend.set_session(),

Sau đó xóa hàm get_value() và sử dụng trực tiếp câu lệnh thực thi x.eval(session=get_my_session()) được sử dụng trong get_value(); theo cách này, câu lệnh cốt lõi x.eval() gây rò rỉ bộ nhớ khi thêm nút sử dụng điều này project. Thống nhất và tùy chỉnh phiên, sau đó sử dụng tf.reset_default_graph() để đặt lại biểu đồ.

Nghĩa là, mã vấn đề trong hình trên được sửa đổi thành:

?
1
2
3
4
5
đầu ra = ctc_decode(y_pred, chiều dài đầu vào = chiều dài đầu vào,)
đầu ra = đầu ra[ 0 ][ 0 ]
ngoài = đầu ra. đánh giá (phiên họp = lấy_phiên_của_tôi())
# Xóa K.get_value(out[0][0])
tf.reset_default_graph() # Sau đó reset lại biểu đồ tf, câu này quan trọng lắm

Điều này giải quyết vấn đề get_value() ngày càng chậm hơn;

Cá nhân tôi nghĩ: Bằng cách này, các nút mới có thể không được thêm vào liên tục, khiến biểu đồ tf tiếp tục phát triển vô hạn, thay vào đó, nút tùy chỉnh này có thể được sử dụng lại.

Bổ sung: Giải pháp cho vấn đề get_session do vấn đề phiên bản giữa tensorflow và keras gây ra.

1. Nguyên nhân báo lỗi

?
1
2
3
4
5
6
7
nhập khẩu tensorflow.keras.backend là K
định nghĩa __nóng__( bản thân , * * kwargs):
     bản thân .__dict__.cập nhật( bản thân ._mặc định) # thiết lập các giá trị mặc định
     bản thân .__dict__.cập nhật(kwargs) # và cập nhật với ghi đè của người dùng
     bản thân .tên_lớp = bản thân ._lấy_lớp()
     bản thân .mỏ neo = bản thân ._get_anchors()
     bản thân .phiên = K.get_session()

Lỗi được báo cáo như sau:

get_session không khả dụng khi sử dụng TensorFlow 2.0.

Điều đó có nghĩa là tf2.0 không có get_session.

2. Giải pháp 1

?
1
2
nhập khẩu tensorflow.python.keras.backend là K
phiên = K.get_session()

3. Giải pháp 2

?
1
2
nhập khẩu TensorFlow như tf
phiên = tf.compat.v1.keras.backend.get_session()

Giải pháp 1 đã được sử dụng trước đây và cảm thấy thuận tiện hơn; tuy nhiên, giải pháp 1 có vấn đề làm mất các thuộc tính khác.

Lỗi AttributeError: module 'keras.backend' không có thuộc tính image_dim_ordering.

Vì vậy, chúng tôi khuyên bạn nên áp dụng phương án 2.

Trên đây là kinh nghiệm cá nhân của mình, hi vọng có thể cho các bạn tham khảo và mong các bạn có thể ủng hộ mình.

Liên kết gốc: https://blog.csdn.net/mingshili/article/details/81941677.

Cuối cùng, bài viết này về giải pháp cho vấn đề get_value của máy ảnh chạy ngày càng chậm. Nếu bạn muốn biết thêm về giải pháp cho vấn đề get_value của máy ảnh chạy ngày càng chậm, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

25 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress