Jupyter 一直为我的数字识别返回无类型。我一直得到"'NoneType'对象不可下标"



实际问题是什么。我保存了一些我用颜料绘制的图片,并用ipynb保存在同一个文件夹中。我将第th个png文件命名为1,2,3,4,5,6。

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = tf.keras.utils.normalize(x_train, axis=1)
x_test = tf.keras.utils.normalize(x_test, axis=1)
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28)))
model.add(tf.keras.layers.Dense(units=128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(units=128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(units=10, activation=tf.nn.softmax))

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=3)
accuracy, loss = model.evaluate(x_test, y_test)
print(accuracy)
print(loss)
model.save('digits.model')
for x in range(1,6):
img = cv.imread(f'{x}.png')[:,:,0]
img = np.invert(np.array([img]))
prediction = model.predict(img)
print(f'the result is probably:{np.argmax(prediction)}')
plt.imshow(img[0], cmap=plt.cm.binary)
plt.show

[在此输入图像描述][1]

希望很快就会得到帮助[1] :https://i.stack.imgur.com/n6vTs.png

我可能错过了图像的保存,或者你没有在这里发布它。无论如何,路径或图像名称可能是错误的,因为如果无法读取图像,cv.imread将返回空矩阵。(基于文件(

试着看看你是否可以先加载图像,也许路径无效。

最新更新