Hướng dẫn read file pkl python - đọc tệp pkl python

Nói chung là

Trên thực tế, tệp

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
4 của bạn là một tệp
import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5 đã được nối tiếp, điều đó có nghĩa là nó đã được bỏ bằng mô -đun
import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5 của Python.

Để không chuyển dữ liệu bạn có thể:

import pickle


with open['serialized.pkl', 'rb'] as f:
    data = pickle.load[f]

Đối với tập dữ liệu MNIST

Lưu ý

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
7 chỉ cần thiết nếu tệp được nén:

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]

Trong đó mỗi bộ có thể được chia thêm [nghĩa là đối với tập huấn luyện]:

train_x, train_y = train_set

Đó sẽ là các đầu vào [chữ số] và đầu ra [nhãn] của các bộ của bạn.

Nếu bạn muốn hiển thị các chữ số:

import matplotlib.cm as cm
import matplotlib.pyplot as plt


plt.imshow[train_x[0].reshape[[28, 28]], cmap=cm.Greys_r]
plt.show[]

Thay thế khác là xem xét dữ liệu gốc:

//yann.lecun.com/exdb/mnist/

Nhưng điều đó sẽ khó hơn, vì bạn sẽ cần tạo một chương trình để đọc dữ liệu nhị phân trong các tệp đó. Vì vậy, tôi khuyên bạn nên sử dụng Python và tải dữ liệu với

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5. Như bạn đã thấy, nó rất dễ dàng. ;-]

Đối tượng Sau Đói Đạo Sẵn Sàng Để Sử Tất nhiênn, bạn Có Thể Sử Dụng lại Các Tênn Ban Đầu, Nếu Bạn Thích. Ví dụ nào sử dụng các Tênn riênng biệt Để rõ rõ.

Những Đi

  • HÃY GHI NHớ NHữNG ĐIềU NOY KHI Sử DụNG Mô
  • Và sau đó trong kịch bản chỉ
  • Trong trường hợp điều này không hoạt động, hãy tham khảo các vấn đề cài đặt Pickle trên Stack Overflow. Một cách được đề xuất khác là chạy:
    import matplotlib.cm as cm
    import matplotlib.pyplot as plt
    
    
    plt.imshow[train_x[0].reshape[[28, 28]], cmap=cm.Greys_r]
    plt.show[]
    
    3
  • MÃ Ví dụ về dưa chua bằng python

Để GHI MộT ĐốI TượNG VÀO TệP, BạN Sử DụNG

Đây là Cách một ví dụ trong thế Giới thực Trôn

def encrypt_file[filepath, key]:
    f = Fernet[key]
    with open[filepath, "rb"] as file:
        # read all file data
        file_data = file.read[]

    # encrypt data
    encrypted_data = f.encrypt[file_data]

    with open[filepath, "wb"] as file:
        file.write[encrypted_data]


def decrypt_file[filepath, key]:
    f = Fernet[key]
    with open[filepath, "rb"] as file:
        encrypted_data = file.read[]
        
    decrypted_data = f.decrypt[encrypted_data]
    return decrypted_data

Đoạn MÃ nÀY GHI NộI DUNG CủA Object_pi Vào file_pi của tr là

Để Khôms GIả Sử RằNG DưA CHUA CHưASep 19, 2021 at 10:38

Đoạn MÃ Sau KhômDario

Đối tượng Sau Đói Đạo Sẵn Sàng Để Sử Tất nhiênn, bạn Có Thể Sử Dụng lại Các Tênn Ban Đầu, Nếu Bạn Thích. Ví dụ nào sử dụng các Tênn riênng biệt Để rõ rõ.5 bronze badges

5

Những Đi

Vì vậy, tôi đã làm điều tiếp theo, chuyển đổi thư viện. Pyaescrypt thực hiện chính xác những gì bạn muốn, vì vậy bạn không phải phát minh lại bánh xe.

Xem mã mẫu này:

import pickle
import pyAesCrypt


def create_pickle[picklefile]:
    data = {"data": "random"}
    with open[picklefile, "wb"] as outfile:
        pickle.dump[data, outfile]


password = "please-use-a-long-and-random-password"
picklefile = "somefile.pkl"
picklefile_enc = f"{picklefile}.aes"
jsonfile = "tmp.json"
create_pickle[picklefile]

# encrypt
pyAesCrypt.encryptFile[picklefile, picklefile_enc, password]
# decrypt
pyAesCrypt.decryptFile[picklefile_enc, f"2_{picklefile}", password]

with open[f"2_{picklefile}", "rb"] as infile:
    print[pickle.load[infile]]

đầu ra

{'data': 'random'}

Đã trả lời ngày 20 tháng 9 năm 2021 lúc 16:17Sep 20, 2021 at 16:17

Edo Akseedo AkseEdo Akse

3.3132 huy hiệu vàng9 Huy hiệu bạc18 Huy hiệu đồng2 gold badges9 silver badges18 bronze badges

Tôi cần gói

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5 được cài đặt trong
train_x, train_y = train_set
0 của tôi trong Windows 10.

Nội phân chính

  • Những gì tôi đã thử
  • Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ Python Python-3.x Windows Pip Pickle hoặc đặt câu hỏi của riêng bạn.
  • MÃ Ví dụ về dưa chua bằng python
  • Những Đi

Những gì tôi đã thử

Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ Python Python-3.x Windows Pip Pickle hoặc đặt câu hỏi của riêng bạn.

MÃ Ví dụ về dưa chua bằng python

Những Đi

Khi thử với

train_x, train_y = train_set
1, tôi đã nhận được:

Lỗi: Không thể tìm thấy một phiên bản thỏa mãn yêu cầu dưa chua [từ phiên bản: Không có] Lỗi: Không tìm thấy phân phối phù hợp cho Pickle

Sau đó, tôi đã thử giải pháp được đề xuất trong câu hỏi này bằng cách sử dụng
train_x, train_y = train_set
2 nhưng gặp lỗi sau:

Lỗi: Microsoft Visual C ++ 14.0 trở lên được yêu cầu. Nhận nó với "Công cụ xây dựng Microsoft C ++": //visualstudio.microsoft.com/visual-cpp-build-tools/

Sau đó, tôi đã cố gắng cài đặt công cụ được đề xuất bởi lỗi nhưng có cùng thông báo lỗi sau khi thử lại
train_x, train_y = train_set
2.

Câu hỏi

Đó là cách chính xác để cài đặt gói

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5 trong
train_x, train_y = train_set
0 trong Windows 10?Jul 29, 2021 at 20:21

CẬP NHẬTCedric Zoppolo

Không cần phải cài đặt mô -đun

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5 vì nó đã được cài đặt cùng với
train_x, train_y = train_set
7. Chỉ cần làm
train_x, train_y = train_set
8 và voila!5 gold badges28 silver badges48 bronze badges

2

hỏi ngày 29 tháng 7 năm 2021 lúc 20:21

import pickle

Cedric Zoppolocedric ZoppoloAug 19, 2021 at 18:03

1

3,8295 huy hiệu vàng28 Huy hiệu bạc48 Huy hiệu đồng

Câu trả lời cập nhật Cedric là đúng. Pickle tồn tại trong Python 3.9. Bạn không cần Pip Cài đặt Pickle. Chỉ cần sử dụng nó.

Đã trả lời ngày 19 tháng 8 năm 2021 lúc 18:03

import pickle4 as pickle

Sau đó, tôi đã cố gắng cài đặt công cụ được đề xuất bởi lỗi nhưng có cùng thông báo lỗi sau khi thử lại
train_x, train_y = train_set
2.

Câu hỏi

Đó là cách chính xác để cài đặt gói

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5 trong
train_x, train_y = train_set
0 trong Windows 10?Jul 29, 2021 at 20:21

CẬP NHẬTCedric Zoppolo

Không cần phải cài đặt mô -đun

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
5 vì nó đã được cài đặt cùng với
train_x, train_y = train_set
7. Chỉ cần làm
train_x, train_y = train_set
8 và voila!5 gold badges28 silver badges48 bronze badges

hỏi ngày 29 tháng 7 năm 2021 lúc 20:21
Hence, simple import works:

import pickle

Cedric Zoppolocedric Zoppolo
Another suggested way is to run:

import matplotlib.cm as cm
import matplotlib.pyplot as plt


plt.imshow[train_x[0].reshape[[28, 28]], cmap=cm.Greys_r]
plt.show[]
3

3,8295 huy hiệu vàng28 Huy hiệu bạc48 Huy hiệu đồng

Câu trả lời cập nhật Cedric là đúng. Pickle tồn tại trong Python 3.9. Bạn không cần Pip Cài đặt Pickle. Chỉ cần sử dụng nó.Oct 24, 2021 at 5:02

Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ Python Python-3.x Windows Pip Pickle hoặc đặt câu hỏi của riêng bạn.

MÃ Ví dụ về dưa chua bằng pythonLà một mô-đun, pickle cung cấp khả năng lưu các đối tượng Python giữa các quy trình.

Những Đicơ sở dữ liệu , trò chơi, diễn đàn hoặc một số ứng dụng khác phải lưu thông tin giữa các phiên, pickle rất hữu ích để lưu số nhận dạng và cài đặt. Mô-đun pickle có thể lưu trữ những thứ như kiểu dữ liệu như boolean, chuỗi và mảng byte, danh sách, từ điển, hàm, v.v.

Khi thử với

train_x, train_y = train_set
1, tôi đã nhận được:  Khái niệm tẩy rửa còn được gọi là nối tiếp, sắp xếp và làm phẳng. Tuy nhiên, điểm luôn giống nhau — lưu một đối tượng vào tệp để truy xuất sau này. Pickling hoàn thành điều này bằng cách ghi đối tượng dưới dạng một dòng byte dài. 

MÃ Ví dụ về dưa chua bằng python

Những Đi

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
0

Khi thử với

train_x, train_y = train_set
1, tôi đã nhận được:

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
1

Lỗi: Không thể tìm thấy một phiên bản thỏa mãn yêu cầu dưa chua [từ phiên bản: Không có] Lỗi: Không tìm thấy phân phối phù hợp cho Pickleobject_pi vào file_pi của trình xử lý tệp , đến lượt nó được liên kết với tệp filename_pi.obj trong thư mục thực thi.

Sau đó, tôi đã thử giải pháp được đề xuất trong câu hỏi này bằng cách sử dụng

train_x, train_y = train_set
2 nhưng gặp lỗi sau:Giả sử rằng dưa chua chưa được nhập để sử dụng, hãy bắt đầu bằng cách nhập nó:

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
2

Lỗi: Microsoft Visual C ++ 14.0 trở lên được yêu cầu. Nhận nó với "Công cụ xây dựng Microsoft C ++": //visualstudio.microsoft.com/visual-cpp-build-tools/

import gzip
import pickle


with gzip.open['mnist.pkl.gz', 'rb'] as f:
    train_set, valid_set, test_set = pickle.load[f]
3

Sau đó, tôi đã cố gắng cài đặt công cụ được đề xuất bởi lỗi nhưng có cùng thông báo lỗi sau khi thử lại

train_x, train_y = train_set
2.object_pi2 . Tất nhiên, bạn có thể sử dụng lại các tên ban đầu, nếu bạn thích. Ví dụ này sử dụng các tên riêng biệt để rõ ràng.

Những Đi

Khi thử với

train_x, train_y = train_set
1, tôi đã nhận được:

  • Lỗi: Không thể tìm thấy một phiên bản thỏa mãn yêu cầu dưa chua [từ phiên bản: Không có] Lỗi: Không tìm thấy phân phối phù hợp cho PickleRất có thể bạn không thể chuyển thông tin để làm cho nó hữu ích bằng Perl, PHP, Java hoặc các ngôn ngữ khác.
  • Sau đó, tôi đã thử giải pháp được đề xuất trong câu hỏi này bằng cách sử dụng
    train_x, train_y = train_set
    
    2 nhưng gặp lỗi sau:
    Sự không tương thích tồn tại bởi vì không phải mọi cấu trúc dữ liệu Python đều có thể được tuần tự hóa bởi mô-đun.
  • Theo mặc định, phiên bản mới nhất của giao thức dưa chua được sử dụng. Nó vẫn như vậy trừ khi bạn thay đổi nó theo cách thủ công.Nó vẫn như vậy trừ khi bạn thay đổi nó theo cách thủ công.

Mẹo:  Ngoài ra, hãy tìm hiểu  cách sử dụng giá đỡ để lưu các đối tượng trong Python  cho một phương pháp khác để duy trì tính liên tục của đối tượng.  Ngoài ra, hãy tìm hiểu  cách sử dụng giá đỡ để lưu các đối tượng trong Python  cho một phương pháp khác để duy trì tính liên tục của đối tượng.

Bài Viết Liên Quan

Chủ Đề