在学习吴恩达的深度学习的第二周编程作业时,最后用自己的图片进行测试发现会报如下错误
这是因为scipy1.3.0开始,imread,imresize就已经被弃用了,后续需要进行以下两处修改。
1. imread
原代码:
## START CODE HERE ## (PUT YOUR IMAGE NAME)
my_image = "IMG_8605.JPG"
## END CODE HERE ##
# We preprocess the image to fit your algorithm.
fname = "images/" + my_image
image = np.array(ndimage.imread(fname, flatten=False))
修改后:
import imageio
## START CODE HERE ## (PUT YOUR IMAGE NAME)
my_image = "IMG_8605.JPG"
## END CODE HERE ##
# We preprocess the image to fit your algorithm.
fname = "images/" + my_image
image = np.array(imageio.imread(fname))
2. imresize
原代码:
my_image = scipy.misc.imresize(image, size=(num_px,num_px)).reshape((1, num_px*num_px*3)).T
修改后:
from PIL import Image
my_image = np.array(Image.fromarray(image).resize((num_px,num_px))).reshape((1, num_px*num_px*3)).T
修改后的完整代码如下
import imageio
from PIL import Image
## START CODE HERE ## (PUT YOUR IMAGE NAME)
my_image = "IMG_8605.JPG"
## END CODE HERE ##
# We preprocess the image to fit your algorithm.
fname = "images/" + my_image
image = np.array(imageio.imread(fname))
my_image = np.array(Image.fromarray(image).resize((num_px,num_px))).reshape((1, num_px*num_px*3)).T
## my_image = scipy.misc.imresize(image, size=(num_px,num_px)).reshape((1, num_px*num_px*3)).T
my_predicted_image = predict(d["w"], d["b"], my_image)
plt.imshow(image)
print("y = " + str(np.squeeze(my_predicted_image)) + ", your algorithm predicts a \"" + classes[int(np.squeeze(my_predicted_image)),].decode("utf-8") + "\" picture.")
感谢博主:https://www.cnblogs.com/Timeouting-Study/p/12356833.html