keras topN显示,自编写代码案例


Posted in Python onJuly 03, 2020

对于使用已经训练好的模型,比如VGG,RESNET等,keras都自带了一个keras.applications.imagenet_utils.decode_predictions的方法,有很多限制:

def decode_predictions(preds, top=5):
 """Decodes the prediction of an ImageNet model.

 # Arguments
 preds: Numpy tensor encoding a batch of predictions.
 top: Integer, how many top-guesses to return.

 # Returns
 A list of lists of top class prediction tuples
 `(class_name, class_description, score)`.
 One list of tuples per sample in batch input.

 # Raises
 ValueError: In case of invalid shape of the `pred` array
  (must be 2D).
 """
 global CLASS_INDEX
 if len(preds.shape) != 2 or preds.shape[1] != 1000:
 raise ValueError('`decode_predictions` expects '
    'a batch of predictions '
    '(i.e. a 2D array of shape (samples, 1000)). '
    'Found array with shape: ' + str(preds.shape))
 if CLASS_INDEX is None:
 fpath = get_file('imagenet_class_index.json',
    CLASS_INDEX_PATH,
    cache_subdir='models',
    file_hash='c2c37ea517e94d9795004a39431a14cb')
 with open(fpath) as f:
  CLASS_INDEX = json.load(f)
 results = []
 for pred in preds:
 top_indices = pred.argsort()[-top:][::-1]
 result = [tuple(CLASS_INDEX[str(i)]) + (pred[i],) for i in top_indices]
 result.sort(key=lambda x: x[2], reverse=True)
 results.append(result)
 return results

把重要的东西挖出来,然后自己敲,这样就OK了,下例以MNIST数据集为例:

import keras
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
import tflearn
import tflearn.datasets.mnist as mnist

def decode_predictions_custom(preds, top=5):
 CLASS_CUSTOM = ["0","1","2","3","4","5","6","7","8","9"]
 results = []
 for pred in preds:
 top_indices = pred.argsort()[-top:][::-1]
 result = [tuple(CLASS_CUSTOM[i]) + (pred[i]*100,) for i in top_indices]
 results.append(result)
 return results

x_train, y_train, x_test, y_test = mnist.load_data(one_hot=True)

model = Sequential()
model.add(Dense(units=64, activation='relu', input_dim=784))
model.add(Dense(units=10, activation='softmax'))
model.compile(loss='categorical_crossentropy',
  optimizer='sgd',
  metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, batch_size=128)
# score = model.evaluate(x_test, y_test, batch_size=128)
# print(score)
preds = model.predict(x_test[0:1,:])
p = decode_predictions_custom(preds)
for (i,(label,prob)) in enumerate(p[0]):
 print("{}. {}: {:.2f}%".format(i+1, label,prob)) 
# 1. 7: 99.43%
# 2. 9: 0.24%
# 3. 3: 0.23%
# 4. 0: 0.05%
# 5. 2: 0.03%

补充知识:keras简单的去噪自编码器代码和各种类型自编码器代码

我就废话不多说了,大家还是直接看代码吧~

start = time()
 
from keras.models import Sequential
from keras.layers import Dense, Dropout,Input
from keras.layers import Embedding
from keras.layers import Conv1D, GlobalAveragePooling1D, MaxPooling1D
from keras import layers
from keras.models import Model
 
# Parameters for denoising autoencoder
nb_visible = 120
nb_hidden = 64
batch_size = 16
# Build autoencoder model
input_img = Input(shape=(nb_visible,))
 
encoded = Dense(nb_hidden, activation='relu')(input_img)
decoded = Dense(nb_visible, activation='sigmoid')(encoded)
 
autoencoder = Model(input=input_img, output=decoded)
autoencoder.compile(loss='mean_squared_error',optimizer='adam',metrics=['mae'])
autoencoder.summary()
 
# Train
### 加一个early_stooping
import keras 
 
early_stopping = keras.callbacks.EarlyStopping(
  monitor='val_loss',
  min_delta=0.0001,
  patience=5, 
  verbose=0, 
  mode='auto'
)
autoencoder.fit(X_train_np, y_train_np, nb_epoch=50, batch_size=batch_size , shuffle=True,
        callbacks = [early_stopping],verbose = 1,validation_data=(X_test_np, y_test_np))
# Evaluate
evaluation = autoencoder.evaluate(X_test_np, y_test_np, batch_size=batch_size , verbose=1)
print('val_loss: %.6f, val_mean_absolute_error: %.6f' % (evaluation[0], evaluation[1]))
 
end = time()
print('耗时:'+str((end-start)/60))

keras各种自编码代码

以上这篇keras topN显示,自编写代码案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
介绍Python中内置的itertools模块
Apr 29 Python
Python三级目录展示的实现方法
Sep 28 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
python正则表达式re之compile函数解析
Oct 25 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
Jan 31 Python
Python随机函数random()使用方法小结
Apr 29 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
python如何使用代码运行助手
Jul 03 #Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 #Python
python3 简单实现组合设计模式
Jul 02 #Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 #Python
django 装饰器 检测登录状态操作
Jul 02 #Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 #Python
django 实现后台从富文本提取纯文本
Jul 02 #Python
You might like
77A一级收信机修理记
2021/03/02 无线电
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
Prototype Class对象学习
2009/07/19 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
在centos7中分布式部署pyspider
2017/05/03 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
python 模块导入问题汇总
2021/02/01 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
智乐游戏测试笔试题
2014/05/21 面试题
主要的Ajax框架都有什么
2013/11/14 面试题
教育实习生的自我评价分享
2013/11/21 职场文书
社团招新策划书
2014/02/04 职场文书
会计师职业生涯规划范文
2014/02/18 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
保护动物的标语
2014/06/11 职场文书