Tensorflow使用教训:被tf.image.resize浪费的60天

TensorFlow开发者认证:从模型训练到生产部署的全链路工程能力 TensorFlow开发者认证聚焦于真实场景下的端到端机器学习工程能力,涵盖数据管道构建、自定义训练循环、模型评估诊断及TFLite轻量化部署等核心环节。其本质是考察开发者对tf.data、tf.function、SavedModel和TFLite等原生API的深度理解与鲁棒应用能力,而非理论记忆或高层封装调用。该认证强调内存效率、计算并行性、错误容错性与生产约束适配,适用于已具备Kaggle项目经验、能独立调试梯度流与部署问题的中级AI工程师。它代表从‘能跑通模型’到‘可交付系统’的关键跃迁,是工业级Te 阅读详情

How Tensorflow’s tf.image.resize stole 60 days of my life

原文地址:https://hackernoon.com/how-tensorflows-tf-image-resize-stole-60-days-of-my-life-aba5eb093f35?gi=f6c680bed9e0

这是一个对所有计算机视觉工作者的简短警告:请勿使用任何tf.image.resize函数!

 

为了让增强图像识别的神经网络,使其更快,更大,并为正在开发的API做好准备,我正在重写这一部分的代码库,如同我们以前处理图像生成任务(超分辨率,去模糊等)时,我们确实依赖OpenCv和PIL这样的典型图像处理库。我总是怀疑使用TensorFlow图像处理功能是否合理——理论上来说,它们应该更快。因此,我决定坚持使用dataset.map()函数,将所有的图像处理的运算放入其中。

问题出现了——我的新代码训练出来的超分辨率模型不仅没法state-of-art,甚至还不如我4个月前写的。而最丑陋的部分是,超分辨率本身的结果有时是非常好的,说明网络是working的,尽管没有达到PSNR目标,有时候还有一些奇怪的视觉产物,比如小线条的倍增。

 

让我们开始debug

我为这个看起来很小的bug奋斗了60天。我的逻辑很简单--网络结构的定义或者训练过程中出现了问题,数据处理绝对没有问题,因为我在Tensorboard中可视化了图像处理过程与结果。

我调整了我能想到的所有东西,使用Keras,Slim,用原生TensorFlow——没有什么卵用。切换TF1.3→1.4→1.5和不同的CUDA版本。我甚至怀疑GPU内存和静态的缺陷。我甚至调整perceptual losses和style losses来寻找原因。每次训练都需要花几天时间才能获得有意义的结果。

就在昨天,我查看Tensorboard的时候发现了bug。几乎是潜意识里觉得图像出了问题。我直接忽略网络的输出,在Photoshop中叠加了目标图像和输入图像(即缩小的目标图像),下图是我得到的:

这看起来很奇怪,两张图像之间发生了位移,完全违背任何逻辑,这是不可能的! 我的代码其实很简单,读取图像,裁剪图像,调整图像大小,所有操作都在TensorFlow中执行。

无论如何,Read The Fucking Manual ,tf.image.resize_bicubic有一个参数——“对齐角落”。这个有着奇怪行为的函数已经存在了很长时间了,他们无法修复他,因为这会破坏大量旧代码和预先训练的网络

我们的tf.image.resize_area函数甚至不等于反射,虽然可以优雅地解决这个问题,但我会担心会破坏旧的模式。

该代码实际将你的图像向左和向上移动一个像素,这个破坏过程甚至在插值中。这是2018年,很难想象这是TensorFlow对缩小尺度的结果。

 无论你偏好什么样的图像处理过程,坚持使用Scipy/OpenCV/numpy/PIL。当我改变了这部分代码,我的网络焕发出了魅力(当我看到训练结果时,实际上是第二天)。

 

 

TensorFlow 2 中 tf.function 替代 Session 的核心实践 tf.function 是 TensorFlow 2 实现函数式执行的核心机制,它将 Python 函数自动编译为高性能计算图,在保留 Eager Execution 调试便利性的同时,提供接近原生图模式的训练与推理性能。其原理基于 AutoGraph 控制流转换、tracing 机制与静态签名约束,技术价值在于统一开发、训练与部署的心智模型,消除 Session 带来的调试割裂、控制流限制和部署复杂性。典型应用场景包括自定义训练循环、数据预处理流水线加速、混合精度训练及多 GPU 分布式训练。本文聚焦于 阅读详情

相关推荐

TensorFlow是数据科学全链路操作系统:从tf.data到TFX的工程化实践

TensorFlow本质上不是深度学习框架,而是面向大规模、高可靠、长生命周期数据智能系统的基础设施。其核心在于统一计算图抽象——通过tf.data.Dataset实现可审计、可优化的数据流管道,以SavedModel定义跨语言、强契约的模型交付标准。这种图优先设计并非技术倒退,而是为解决生产中内存不可控、执行不可复现、扩展不可预测等工程瓶颈。在实时特征计算、千卡分布式训练、边缘低功耗推理及自动漂移告警等关键场景中,TensorFlow提供的是端到端的工程契约与系统级保障,而非单点API调用。

leonard61306500的专栏 395

TensorFlow函数:tf.image.resize_bilinear

TensorFlow函数:tf.image.resize_bilinear tf.image.resize_bilinear函数 tf.image.resize_bilinear( images, size, align_corners=False, name=None ) 使用双线性插值调整images为size. 输入图像可以是不同的类型,但输出图像总是浮点型...

weixin_42675603的博客 2821

TensorFlow工业级交付:从SavedModel到Serving的工程实践

SavedModel是TensorFlow模型交付的核心格式,它不仅封装权重与计算图,更定义了输入输出的严格接口契约,支撑可复现、可验证、可回滚的MLOps流程。其原理基于协议缓冲区(PB)描述完整执行语义,并通过签名(Signature)和资产(Assets)实现环境无关的自包含部署。技术价值在于统一训练、验证、服务与端侧适配链路,显著降低跨平台集成成本。典型应用场景包括制造业缺陷识别、医疗影像推理、金融风控模型上线等对稳定性与合规性要求严苛的领域。本文聚焦TensorFlow在真实产线中围绕SavedM

Coding 437

关于TensorFlow GPU 跑神经网络爆内存的处理办法

本人上一篇博客介绍了vgg16模型的finetuning(网址:点击打开链接),在cpu上跑没问题,但是我在全部复制到gpu(gtx750TI)上跑却发生爆内存的情况,下面介绍一下我的解决办法。      不得不承认爆内存跟我的渣渣gpu有关,为了尽量的减少gpu内存的使用率,在加载vgg16模型的时候并没有直接调用命令,而是把网络的权重跟偏置都设为常值,直接赋值,减少了以后sess.r...

FOYO_NEW_DL的博客 1万+

TensorFlow工业级计算机视觉实战:数据治理、模型演进与边缘部署

计算机视觉(CV)不仅是算法问题,更是端到端工程系统问题。其核心在于如何将原始图像数据可靠地转化为可部署、可维护、可验证的推理服务。TensorFlow凭借tf.data的数据图编译能力、tf.keras.Model子类化的架构可演进性、tf.function+XLA的确定性高性能编译、SavedModel的契约式交付标准,以及TFLite对边缘设备的深度优化支持,构成了面向真实产线的全栈CV工程底座。尤其在数据质量不可控、模型需渐进升级、部署环境受限(如CPU/嵌入式/低温工况)等工业场景中,Tensor

538

50岁ATM工程师的TensorFlow认证实战路径

TensorFlow开发者认证并非传统知识考试,而是面向工业落地的端到端AI工程能力压力测试。它聚焦模型可复现性、部署确定性与生产级交付能力,核心考察数据管道构建、模型调试调优、跨环境兼容性及.h5格式标准化交付等硬技能。区别于学术导向的深度学习理论,该认证强调在真实约束(如TF 2.9旧版本、无pip安装、CPU-only环境)下,将原始数据转化为可验证精度的推理服务——这正是嵌入式、安全、运维等传统IT工程师切入AI落地的关键跳板。文中详述的tf.data优化、Tokenizer避坑、BatchNorm

张沈鹏,在路上 ... 398

图像质量评估指标 PSNR和SSIM

PSNR (Peak Signal to Noise Ratio)峰值信噪比 MSE=1H×W∑i=1H∑j=1W(X(i,j)−Y(i,j))2MSE=\frac{1}{H\times W}\sum_{i=1}^{H}\sum_{j=1}^{W}(X(i,j)-Y(i,j))^2MSE=H×W1​∑i=1H​∑j=1W​(X(i,j)−Y(i,j))2 MSE表示当前图像X和参考图像Y的均方误差...

Kain的博客 3674

Tensorflow实现二次元图像的超分辨率

使用tensorflow实现了一个vgg-style网络,用于对动漫风格的图像进行超分辨率处理。 解压后源码在src目录下,data目录下是用于训练的数据,data/originals目录用于存放你收集的原始无损图片,运行make_noisefree_data后,程序会自动从data/originals中读取文件并裁剪,然后保存到data/train,data/valid和data/test目录下,分别用于训练、验证和测试。训练中产生的模型会保存在checkpoints目录下。

tf.image.resize_bilinear

tf.image.resize_bilinear https://github.com/tensorflow/docs/tree/r1.4/site/en/api_docs/api_docs/python/tf/image site/en/api_docs/api_docs/python/tf/image/resize_bilinear.md resize_bilinear( images, size, align_corners=False, name=None ) bi

程永强 5941

waifu2x:动漫风格艺术的单图像超分辨率-开源

使用深度卷积神经网络的动漫风格艺术的单图像超分辨率。 它支持照片。 您可以训练自己的模型,更改图像大小,减少图像噪点,放大尺寸并自定义图像样式。 它提供了转换和下载已编辑图像的选项。

浅谈tensorflow 中的图片读取和裁剪方式

主要介绍了浅谈tensorflow 中的图片读取和裁剪方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

小心使用tf.image.resize_images,填坑经验分享给你

上上周,我在一个项目上线前对模型进行测试时出现了问题,这个问题困扰了我两周,终于找到了问题根源,做个简短总结分享给你,希望对大家有帮助。 问题描述:线上线下测试结果不一致,且差异很大 具体来说, 线下测试直接load由ckpt存储的模型,然后使用cv进行数据预处理,然后正常评估测试集上的准召。 线上测试,首先使用tf.image相关函数将预处理写死在模型中,将ckpt模型转为savemodel格式...

随煜而安的专栏 8949

手把手教你用Isaac Sim 8打造逼真光影效果:参数设置与场景应用

本文详细介绍了如何使用Isaac Sim 8打造逼真光影效果,涵盖基础参数设置、高级材质交互、专业级灯光造型技法以及复杂场景的灯光布局策略。通过实战案例和参数调优技巧,帮助用户提升虚拟场景的视觉表现,适用于数字孪生、虚拟仿真和影视特效等领域。

weixin_30836759的博客 78

Tensorflow里的tf.image.resize里的BUG!

原文:https://hackernoon.com/how-tensorflows-tf-image-resize-stole-60-days-of-my-life-aba5eb093f35 How Tensorflow’s tf.image.resize stole 60 days of my life That’s a short warning to all Tensorflow use...

shentanyue的博客 2107

H3C交换机Console口连接全攻略:从接线到PuTTY配置(附常见问题排查)

本文详细介绍了H3C交换机Console口的连接与配置方法,包括硬件线缆选择、驱动安装、PuTTY参数设置及常见问题排查。特别针对Console转USB线缆的兼容性和驱动安装难点提供实用建议,帮助网络工程师快速掌握串联调试技巧,解决连接中的黑屏、乱码等典型问题。

weixin_42549451的博客 674

SAP CKMLCP 月结7大常见报错:从“未找到成本核算运行”到“物料占用”的完整解决方案

本文深入解析SAP CKMLCP月结过程中的7大常见报错,从权限问题到数据一致性错误,提供系统化的解决方案。重点解决'未找到成本核算运行'和'物料占用'等典型问题,帮助财务人员高效完成成本核算月结,确保数据准确性。

weixin_30299709的博客 415

问题:anaconda 中 tensorflow 与tensorflow-gpu 在tf.image.resize_images()上的区别

  工具:pycharm + anaconda 今天在学习《Tensorflow 实战google 深度学习框架》第7章的过程中,在复现 tf.image.resize_images()时发现,当环境配置为tensorflow-gpu时,该函数得到的图像是乱码,与期望的完全不一样,而当将tensorflow换成anaconda中的tensorflow时,一切显示正常。百思不得其解。 具体情况...

wzg2016的博客 2937

YOLOv8改进 - 注意力篇 - 引入CAA注意力机制

YOLOv8改进 - 注意力篇 - 引入CAA注意力机制

浪子L的博客 5223

tf.image.resize_bilinear vs cv2.resize

最近做项目,涉及到tf_serving. 之前考虑将image预处理放在serving过程中做,但是遇到大图片时耗时过长的问题。所以将预处理移出pb文件,用java掉opencv 完成。 遇到问题:统一图片java做预处理和tf.image做预处理的预测结果不一致(一百张图片中有1~2张预测结果不一致)。google之后看到相关issue及blog。 https://hackernoon....

qq_32110859的博客 2440

Cadence仿真MOS电容C-V曲线:从电路图到参数扫描的完整流程

本文详细介绍了使用Cadence Virtuoso仿真MOS电容C-V曲线的完整流程,从电路图绘制到参数扫描,再到结果分析与问题排查。通过实际案例和实用技巧,帮助工程师快速掌握MOS电容特性分析的关键步骤,提升集成电路设计效率。

weixin_29271263的博客 431

Autosar结合simulink的汽车应用层软件开发实例

本文基于汽车应用开发案例,并结合Autosar相关知识,生成具有Autosar标准的汽车应用层开发代码,以供学习和参考。以上就是本篇内容,主要是利用Simulink创建Autosar接口并进行端口映射的方法。

m0_64899535的博客 2152

TensorFlow图模式性能优化实战:从tf.function到XLA编译

计算图是深度学习框架实现高性能执行的核心抽象,其本质是将动态Python逻辑编译为静态、可优化的OP依赖网络。TensorFlow通过tf.function机制在Eager环境中构建图,结合Grappler图优化器与XLA编译器,实现内存复用、Kernel融合与硬件指令级加速。该技术显著提升GPU显存利用率与训练吞吐量,尤其适用于大模型训练、低延迟推理及服务化部署场景。本文聚焦生产级落地中的关键路径:如何正确启用图模式、规避Python副作用与动态形状陷阱、分层混合Eager/Graph执行,并实测验证tf

weixin_34396103的博客 399

python全栈入门到实战【基础篇 02】环境搭建:Python解释器与PyCharm、VSCode编辑器安装配置详解

本文详解Python环境搭建步骤。首先安装解释器(运行代码核心),需从官网下载,选3.8及以上版本(勿选2.x)。Windows安装必勾“Add Python.exe to PATH”,验证用`python --version`;Mac选universal2安装包,验证用`python3 --version`。 编辑器二选一:PyCharm社区版(免费,新手推荐),安装后需配置解释器路径;VSCode轻量,需装Python插件并选择解释器。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 5万+

TensorFlow 2.x 自定义数据集加载:从本地CSV到tf.data.Dataset的3步流程

在计算机视觉项目开发中,数据准备环节往往消耗开发者60%以上的时间。当面对非标准格式的自定义数据集时,如何构建高效的数据加载流程成为模型训练的第一道门槛。本文将深入解析TensorFlow 2.x中的数据加载最佳实践,通过模块化代码设计实现从原始CSV文件到高性能tf.data.Dataset的完整转换流程。计算机视觉工程师在处理自定义数据集时通常会面临三个主要痛点:数据格式不统一、预处理流程复杂以及内存效率低下。

weixin_30325487的博客 398

万字详解YOLOv8网络结构Backbone/neck/head以及Conv、Bottleneck、C2f、SPPF、Detect等模块

YOLOv8是由Ultralytics开发的最先进的目标检测模型,推升了速度、准确性和用户友好性的界限。YOLO这一缩写代表“你只看一次”(You Only Look Once),通过在一次网络传递中同时预测所有边界框,提升了算法的效率和实时处理能力。相比之下,其他一些目标检测技术需要经过多个阶段或过程来完成检测。YOLOv8在流行的YOLOv5架构上进行了扩展,在多个方面提供了改进。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 14万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: python 读取并显示图片,用plt 同时显示多幅图像
下一篇: 问题:anaconda 中 tensorflow 与tensorflow-gpu 在tf.image.resize_images()上的区别
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值