2017-01-25 14 views
6
model.to_json() 

cho mô hìnhKeras model.to_json() lỗi: 'rawunicodeescape' giải mã không thể giải mã byte ở vị trí 94-98: cắt ngắn uXXXX

____________________________________________________________________________________________________ Layer (type) Output Shape Param #
Connected to
==================================================================================================== lambda_1 (Lambda) (None, 3, 160, 320) 0
lambda_input_1[0][0]
____________________________________________________________________________________________________ convolution2d_1 (Convolution2D) (None, 1, 40, 16) 327696
lambda_1[0][0]
____________________________________________________________________________________________________ elu_1 (ELU) (None, 1, 40, 16) 0
convolution2d_1[0][0]
____________________________________________________________________________________________________ convolution2d_2 (Convolution2D) (None, 1, 20, 32) 12832
elu_1[0][0]
____________________________________________________________________________________________________ elu_2 (ELU) (None, 1, 20, 32) 0
convolution2d_2[0][0]
____________________________________________________________________________________________________ convolution2d_3 (Convolution2D) (None, 1, 10, 64) 51264
elu_2[0][0]
____________________________________________________________________________________________________ flatten_1 (Flatten) (None, 640) 0
convolution2d_3[0][0]
____________________________________________________________________________________________________ dropout_1 (Dropout) (None, 640) 0
flatten_1[0][0]
____________________________________________________________________________________________________ elu_3 (ELU) (None, 640) 0
dropout_1[0][0]
____________________________________________________________________________________________________ dense_1 (Dense) (None, 512) 328192
elu_3[0][0]
____________________________________________________________________________________________________ dropout_2 (Dropout) (None, 512) 0
dense_1[0][0]
____________________________________________________________________________________________________ elu_4 (ELU) (None, 512) 0
dropout_2[0][0]
____________________________________________________________________________________________________ dense_2 (Dense) (None, 1) 513
elu_4[0][0]
==================================================================================================== Total params: 720,497 Trainable params: 720,497 Non-trainable params: 0 ____________________________________________________________________________________________________ None

ném ngoại lệ

'rawunicodeescape' codec can't decode bytes in position 94-98: truncated \uXXXX

Điều gì có thể là vấn đề và làm thế nào tôi có thể giải quyết nó?

Trả lời

5

Tôi gặp phải sự cố tương tự khi sử dụng keras 1.2.1 với chương trình phụ trợ lưu lượng-tensorflow-gpu.

Tôi phát hiện ra nguyên nhân là do cửa sổ 10 ấn bản kỷ niệm gặp sự cố khi mã hóa ký tự gạch chéo phía trước.

Sử dụng lớp Lambda khiến cuộc gọi to_json() không thành công nhưng chuyển sang chuẩn hóa hàng loạt chỉ hoạt động tốt.

model = Sequential() 

# model.add(Lambda(lambda x: x/255. - .5, input_shape=INPUT_DIMENSIONS)) 
model.add(BatchNormalization(input_shape=INPUT_DIMENSIONS, axis=1)) 
. . . 
# POST PROCESSING, SAVE MODEL TO DISK 
with open('model.json', 'w') as json_file: 
    json_file.write(model.to_json()) 

Không phải là giải pháp lý tưởng nhưng hy vọng nó hoạt động cho một người nào đó xem điều này trong tương lai.

16

Dường như mã của bạn nằm trong thư mục như sau: "C: \ Users \ python \ u {...}. Py". Loại lỗi này liên quan đến phiên bản python 3, nơi chúng tôi nhận được ký tự đặc biệt \ u và không thể giải mã nó trên các máy Windows. Bạn có thể thay đổi tên tệp hoặc đường dẫn đầy đủ thành tệp, để nó không chứa các ký tự đặc biệt hoặc tạo bản vá để hoạt động 'func_dump' từ tệp generic_utils.py (có thể truy cập bằng cách làm theo đường dẫn 'keras/utils/generic_utils.py'). Bạn nên thay thế dòng code = marshal.dumps(func.__code__).decode('raw_unicode_escape') theo dòng code = marshal.dumps(func.__code__).replace(b'\\',b'/').decode('raw_unicode_escape').

+0

Đối với bất kỳ ai thắc mắc, điều anh ấy nói là chỉnh sửa bản sao của mã nguồn keras và thay đổi dòng này: https://github.com/fchollet/keras/blob/master/keras/utils/generic_utils.py#L160 – davidawad

+1

@Smashking, cảm ơn vì đã cung cấp liên kết trực tiếp tới tệp. –

0

Tôi tin rằng điều này thực sự là do lỗi trong Keras và đã được chỉnh sửa một cách may mắn bởi Keras pull request #8572. Tuy nhiên, PR đó chỉ được sáp nhập rất gần đây, và trong khi nó được tích hợp trong bản phát hành pypi mới nhất, nó là không phải trong bản phát hành mới nhất, đó là lý do tôi nhận được lỗi này.

Cài đặt máy ảnh qua pip install keras thay vì conda install keras làm mọi thứ hoạt động cho tôi (mặc dù tôi cũng phải đặt trước số này conda install pip để pip hoạt động bình thường).

Các vấn đề liên quan