PyCharm报错 Process finished with exit code -1073741819 (0xC0000005) TensorFlow/Keras/PyTorch

目录

错误现象

分析问题

解决办法

输出结果

完整代码


错误现象

在TensorFlow/Keras环境下读取MNIST手写数字时出错,错误现象如下:

D:\anaconda3\envs\tf1\python.exe F:/Program/Python_Ex/TensorFlow+PyTorch/Chapter02Keras_TensorFlow/ch02p42ReadImage.py

Process finished with exit code -1073741819 (0xC0000005)

说明:tf1是笔者之前搭建的TensorFlow/Keras环境,具体请参考以下文章。

《Win10快速搭建TensorFlow, Keras与PyTorch深度学习环境》

如何在PyCharm中选择并使用Anaconda建立的TensorFlow、Keras和PyTorch Python环境》。

分析问题

通过二分法注释代码进行调试,发现出错的是这两行

# 画图并显示
plt.imshow(image2, cmap="binary")
plt.show()

matplotlib是这个TensorFlow1.12环境(tf1)中最近新装的,其matplotlib版本为2.2.2,pyqt版本为5.6

其他Python环境中Python3.6与PyTorch(pt)的matplotlib都是2.2.3,pyqt版本为5.9

解决办法

对症下药。重新安装正确版本的matplotlib与pyqt。

只要下指令安装matplotlib即可,因为它是以pyqt为后端,conda会自动更新对应版本的pytq与qt。

输出结果

完整代码

#! /usr/bin/env python
# -*- coding: utf-8 -*-


# import the necessary packages
import matplotlib.pyplot as plt
import numpy as np

print("######读取数字######")
f = open("./train-labels.idx1-ubyte", "rb")
f.seek(8)       # 文件的头是8字节,略过不读
# 文件头之后,每个字节代表一个0-9的数字
data = f.read(1)
print(data)
f.close()


print("######读取图片######")
file_train_image = open("./train-images.idx3-ubyte", "rb")
file_train_image.seek(16)  # 图像文件的头是16字节,略过不读
image1 = file_train_image.read(28 * 28)
image2 = np.zeros(28 * 28)
# 将值转换成灰度
for i in range(28 * 28):
    image2[i] = image1[i] / 256
image2 = image2.reshape(28, 28)     # 必须重新reshape
print(image2)

# 画图并显示
plt.imshow(image2, cmap="binary")
plt.show()

file_train_image.close()
发布了85 篇原创文章 · 获赞 82 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/yl_best/article/details/102794050
今日推荐