终于构建出了第一个神经网络,Keras真的很方便。
之前不知道Keras这么方便,在构建神经网络的过程中绕了很多弯路,最开始学的TensorFlow,后来才知道Keras。
TensorFlow和Keras的关系,就像c语言和python的关系,所以Keras是真的好用。
搞不清楚数据的标准化和归一化的关系,想对原始数据做归一化,却误把数据做了标准化,导致用model.predict预测出来的值全是0.0,在网上搜了好久但是没搜到答案,后来自己又把程序读了一遍,突然灵光一现好像是数据归一化出了问题,于是把数据预处理部分的标准化改成了归一化,修改过来之后才能正常预测出来值,才得到应有的数据趋势。
标准化:
(x-mean(x))/std(x) 这是使用z-score方法规范化
归一化:
(x-min(x))/(max(x)-min(x)) 这是常用的最小最大规范化方法
补充知识:keras加载已经训练好的模型文件,进行预测时却发现预测结果几乎为同一类(本人预测时几乎均为为第0类)**
原因:在进行keras训练时候,使用了keras内置的数据读取方式,但是在进行预测时候,使用了自定义的数据读取方式,本人为图片读取。
解决办法查看如下代码:
##############训练: train_gen = ImageDataGenerator(rotation_range=10, width_shift_range=0.2, shear_range=0.2, zoom_range=0.2, fill_mode='constant', cval=0) train_generator = train_gen.flow_from_directory(train_path, target_size=(224, 224), batch_size=16, class_mode='categorical', save_to_dir=train_g, save_prefix='man', save_format='jpg') #############预测 img = cv2.imread(img_path) img = cv2.resize(img, (row, col)) img = np.expands(img, axis=0) out = model.predict(img) # 上述方法是不行的,仔细查看keras内置读取方式,可以观察到内置了load_img方式 # 因此,我们在预测时候,将读取图片的方式改为 from keras.preprocessing.image import load_img, img_to_array img = load_img(img_path) img = img_to_array(img, target_size=(row, col)) img = np.expands(img, axis=0) out = model.predict(img)
注:本文意在说明 对训练数据和预测数据的读取、预处理方式上应该在某种程度上保持一致,从而避免训练结果和真实预测结果相差过大的情况。
以上这篇Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)”评论...
更新日志
2024年12月25日
2024年12月25日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]