96SEO 2026-02-20 02:42 20
话有点多导包没问题的话可以跳过加载MNIST数据集加载经过训练的MNIST模型加载经过训练的卷积自动编码器模型可选初始化CEM解释程序以解释模型预测解释输入实例获得相关否定Pertinent

本文了如何使用AIX360的CEMBexplainer来获得对比解释的示例即对MNIST数据训练的模型所做预测的相关否定PN和相关肯定PP。
CEMBexplainer是对比解释方法的一种实现。
此案例使用经过训练的模型这些模型可从aix360/models/CEM/文件夹访问。
官方代码在https://github.com/Trusted-AI/AIX360/blob/master/examples/contrastive/CEM-MNIST.ipynb
MNISTDataset经典一步一bug眼睛一睁一闭休眠升天修仙。
。
。
tensorflow1.14.0看到这我真的高兴坏了之前不小心把python版本装高了没办法就是这么倒霉推倒重来官网怎么喜欢用那么老的版本为什么我的眼里常含泪水因为对知识爱得深沉。
。
。
python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6
https://blog.csdn.net/weixin_45735391/article/details/133197625
python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6python3.6
python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7
https://blog.csdn.net/weixin_45735391/article/details/133197625
python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7python3.7
warnings.filterwarnings(ignore)好了导包这块终于结束了。
MNISTDataset()花的时间有亿点点久。
。
。
真的等不下去了。
。
。
脑子已经在修仙了。
。
。
os.path.join(os.path.dirname(os.path.abspath(__file__)),..,
[train-images-idx3-ubyte.gz,t10k-images-idx3-ubyte.gz,train-labels-idx1-ubyte.gz,t10k-labels-idx1-ubyte.gz]for
name)urllib.request.urlretrieve(http://yann.lecun.com/exdb/mnist/
name)print(retrieved)train_data
train_labels[:VALIDATION_SIZE]self.train_data
train_labels[VALIDATION_SIZE:]直接百度搜一下下载MNIST数据集找到别人分享的资源把这四个文件[train-images-idx3-ubyte.gz,t10k-images-idx3-ubyte.gz,train-labels-idx1-ubyte.gz,
t10k-labels-idx1-ubyte.gz]下载下来。
rC:\Users\gxx\Desktop\jupter\aix360\MNIST
此notebook使用经过训练的MNIST模型。
此处提供了训练此模型的代码。
请注意该模型输出logits并且不使用softmax函数。
rC:\Users\gxx\Desktop\jupter\aix360\CEMdef
filemodel.load_weights(model_wt_file)return
load_model(os.path.join(model_path,
mnist_model.summary()不出意外bug又来了。
。
。
这个notebook使用了一个经过训练的卷积自动编码器模型。
此处提供了训练此模型的代码。
load_model(os.path.join(model_path,
ae_model.summary()初始化CEM解释程序以解释模型预测
mymodel.predict_classes(np.expand_dims(input_image,
mymodel.predict(np.expand_dims(input_image,
尽管上面的图像被模型分类为数字3但是由于它与数字5具有相似性所以它也可以被分类为数字5。
我们现在使用AIX360的CEMBexplainer来计算相关的正面和负面解释这有助于我们理解为什么图像被模型分类为数字3而不是数字5。
explainer.explain_instance(np.expand_dims(input_image,
C:\Users\gxx\anaconda3\envs\tf-py37\lib\site-packages\aix360\algorithms\contrastive\CEM_aen.py:60:
instead.WARNING:tensorflow:From
C:\Users\gxx\anaconda3\envs\tf-py37\lib\site-packages\aix360\algorithms\contrastive\CEM_aen.py:151:
instead.WARNING:tensorflow:From
C:\Users\gxx\anaconda3\envs\tf-py37\lib\site-packages\aix360\algorithms\contrastive\CEM_aen.py:213:
tf.compat.v1.train.polynomial_decay
instead.WARNING:tensorflow:From
C:\Users\gxx\anaconda3\envs\tf-py37\lib\site-packages\tensorflow\python\keras\optimizer_v2\learning_rate_schedule.py:409:
tensorflow.python.ops.math_ops)
C:\Users\gxx\anaconda3\envs\tf-py37\lib\site-packages\aix360\algorithms\contrastive\CEM_aen.py:216:
tf.train.GradientDescentOptimizer
tf.compat.v1.train.GradientDescentOptimizer
instead.WARNING:tensorflow:From
C:\Users\gxx\anaconda3\envs\tf-py37\lib\site-packages\tensorflow\python\ops\math_grad.py:1250:
add_dispatch_support.locals.wrapper
tensorflow.python.ops.array_ops)
C:\Users\gxx\anaconda3\envs\tf-py37\lib\site-packages\aix360\algorithms\contrastive\CEM_aen.py:230:
tf.compat.v1.variables_initializer
max_nontarget_lab_score:14.4428iter:500
max_nontarget_lab_score:14.4428iter:0
max_nontarget_lab_score:29.0375iter:500
max_nontarget_lab_score:28.5018iter:0
max_nontarget_lab_score:27.1471iter:500
max_nontarget_lab_score:19.4013iter:0
max_nontarget_lab_score:17.5513iter:500
max_nontarget_lab_score:14.4428iter:0
max_nontarget_lab_score:14.5784iter:500
max_nontarget_lab_score:14.4428iter:0
max_nontarget_lab_score:15.6829iter:500
max_nontarget_lab_score:14.4428iter:0
max_nontarget_lab_score:14.8760iter:500
max_nontarget_lab_score:14.4428iter:0
max_nontarget_lab_score:15.3106iter:500
max_nontarget_lab_score:14.4428iter:0
max_nontarget_lab_score:15.1403iter:500
max_nontarget_lab_score:14.4428print(info_pn)结果输出
explainer.explain_instance(np.expand_dims(input_image,
max_nontarget_lab_score:1.0441iter:500
max_nontarget_lab_score:1.0441iter:0
max_nontarget_lab_score:1.1579iter:500
max_nontarget_lab_score:5.3354iter:0
max_nontarget_lab_score:1.0441iter:500
max_nontarget_lab_score:1.0441iter:0
max_nontarget_lab_score:1.0441iter:500
max_nontarget_lab_score:1.0441iter:0
max_nontarget_lab_score:1.1082iter:500
max_nontarget_lab_score:8.5652iter:0
max_nontarget_lab_score:1.0918iter:500
max_nontarget_lab_score:5.3355iter:0
max_nontarget_lab_score:1.0846iter:500
max_nontarget_lab_score:2.9340iter:0
max_nontarget_lab_score:1.0807iter:500
max_nontarget_lab_score:4.7113iter:0
max_nontarget_lab_score:1.0788iter:500
max_nontarget_lab_score:5.0136print(info_pp)结果输出
str(mymodel.predict_classes(np.expand_dims(input_image,
str(mymodel.predict_classes(adv_pn)[0])
str(mymodel.predict_classes(delta_pp)[0])
PP突出显示图像中存在的最小像素集以便将其分类为数字3。
注意原始图像和PP都被分类器分类为数字3。
PN在顶部突出显示一条小水平线该水平线的存在会将原始图像的分类改变为数字5因此应该不存在以便分类保持为数字3。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback