TensorFlow
.
海洋 之心
阿里云社区专家博主,图神经网络-大数据-推荐系统研究者,专注于计算机领域前沿技术的分享等人工智能算法研究工作
展开
-
UMAP:强大的可视化&异常检测工具
数据降维最为重要的是降低数据的维度的同时尽可能保有大量的原始信息,而其中最为大家熟知的是PCA和tSNE,但是这二者都存在一些问题,PCA的速度相对很快,但代价是数据缩减后会丢很多底层的结构信息; tSNE可以保留数据的底层结构,但速度非常慢;UMAP是2018年被提出的降维和可视化算法,它使用Uniform流形近似和投影(UMAP),既可以获得PCA的速度优势,同时还可以保留尽可能多的数据信息,而且其可视化效果也非常美观,如下:UMAP 在其当前的化身中取得了一些重大胜利。Umap介绍统一..原创 2022-01-15 09:42:34 · 2969 阅读 · 2 评论 -
解决ImportError: umap.plot requires pandas matplotlib datashader bokeh holoviews scikit-image and colo
ImportError: umap.plot requires pandas matplotlib datashader bokeh holoviews scikit-image and colorcet to be installed问题原因:我在使用umap库时发现报出该问题,原因是umap需要依赖这些包,需要pip安装这些包,但是我的问题是我看了一下这些包我都有,但是还报这个问题,后来发现是版本不对应,umap需要依赖新版的这些库文件,我的一些包的版本较低解决办法:将已有这些包卸载,安装u.原创 2022-01-15 08:56:51 · 1139 阅读 · 0 评论 -
解决ERROR: Cannot uninstall ‘llvmlite‘. It is a distutils installed project and thus we cannot accurat
问题原因:这是一个distutils安装的项目,因此我们无法准确确定属于该文件的文件,这只会导致部分卸载。使用pip uninstall不能完全删除这个库文件,或导致部分文件残留解决方法:找到相应的库文件,将其进行删除目录文件为:Anaconda3/Lib/site-packagesERROR: Cannot uninstall 'llvmlite'. It is a distutils installed project and thus we cannot accurately deter.原创 2022-01-15 08:48:58 · 3776 阅读 · 2 评论 -
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
在NLP自然语言处理领域,有时我们需要计算不同文本之间的相似度,将不同文本进行编码,然后处理成Embedding定长表示向量,然后使用LSTM进行输出文本表示,定义多个多输入源数据进行计算。句子1:我不爱吃剁椒鱼头,但是我爱吃鱼头句子2:我爱吃土豆,但是不爱吃地瓜同样使用LSTM网络,把每个句子抽象成一个向量表示,通过计算这两个向量之间的相似度,就可以快速完成文本相似度计算任务。在实际场景里,我们也通常使用LSTM网络的最后一步hidden结果,将一个句子抽象成一个向量,然后通过向量点积,或者co原创 2022-01-14 19:32:53 · 799 阅读 · 0 评论 -
解决AttributeError: module ‘tensorflow‘ has no attribute ‘div‘
2022-01-14 19:10:40.281030: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2To en.原创 2022-01-14 19:13:14 · 1394 阅读 · 0 评论 -
【自然语言NLP】TensorFlow使用LSTM实现情感分析任务
自然语言情感分析众所周知,人类自然语言中包含了丰富的情感色彩:表达人的情绪(如悲伤、快乐)、表达人的心情(如倦怠、忧郁)、表达人的喜好(如喜欢、讨厌)。利用机器自动分析这些情感倾向,不但有助于帮助企业了解消费者对其产品的感受,为产品改进提供依据;同时还有助于企业分析商业伙伴们的态度,一遍更好地进行商业决策。我们可以将情感分析任务定义为一个分类问题,即指定一个文本输入,机器通过对文本进行分析、处理、归纳和推理后自动输出结论。常见情感分析任务正向:表示正面积极的情感,如高兴,幸福,惊喜,期待等负原创 2022-01-14 18:43:42 · 1996 阅读 · 0 评论 -
微软亚洲研究院开源热门AutoML工具NNI2.5最新版本
NNI时微软亚洲研究院为研究人员和算法工程师量身定制的自动机器学习(AutoML)工具。过去的几年中,NNI不断迭代更新,持续将最前沿的算法加入其中,加强对各种分布式训练环境的支持,目前NNI已在Github上获得了10.8k星,成为最热门的自动机器学习开源项目之一。原创 2022-01-13 21:17:21 · 471 阅读 · 0 评论 -
pip永久配置清华源镜像
临时使用清华源镜像pip install pydot==0.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn永久配置清华源镜像pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple原创 2022-01-13 20:54:13 · 6009 阅读 · 0 评论 -
解决ERROR: Cannot uninstall ‘PyYAML‘. It is a distutils installed project and thus we cannot accuratel
ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.问题原因:安装微软最新发布AutoML框架NNI出现问题,错误:无法卸载“ PyYAML”。 这是一个distutils安装的项目,因此我们无法.原创 2022-01-13 20:50:29 · 15383 阅读 · 4 评论 -
【图像分类】TensorFlow2.7版本搭建NIN网络
NIN网络结构注解:这里为了简单起见,只是模拟NIN网络结构,本代码只是采用3个mlpconv层和最终的全局平均池化输出层,每个mlpconv层中包含了3个1*1卷积层mlpconv层1*1卷积只是会改变通道维数并不会改变feature map的大小,它可以变向起到一个通道交叉全连接的作用self.mlpconv1 = Sequential([ Conv2D(filters=3, kernel_size=1),原创 2022-01-12 22:38:40 · 416 阅读 · 1 评论 -
解决TypeError: __init__() takes from 1 to 3 positional arguments but 6 were given
2022-01-12 22:20:24.272950: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2To en.原创 2022-01-12 22:26:01 · 8998 阅读 · 0 评论 -
解决ValueError: `validation_split` is only supported for Tensors or NumPy arrays, found following
2022-01-04 19:21:07.023270: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2To en.原创 2022-01-04 19:32:19 · 5766 阅读 · 2 评论 -
TensorFlow进行不同模型和数据集之间的迁移学习和模型微调
迁移学习包括获取从一个问题中学习到的特征,然后将这些特征用于新的类似问题。例如,来自已学会识别浣熊的模型的特征可能对建立旨在识别狸猫的模型十分有用。对于数据集中的数据太少而无法从头开始训练完整模型的任务,通常会执行迁移学习。在深度学习情境中,迁移学习最常见的形式是以下工作流:从之前训练的模型中获取层。冻结这些层,以避免在后续训练轮次中破坏它们包含的任何信息。在已冻结层的顶部添加一些新的可训练层。这些层会学习将旧特征转换为对新数据集的预测。在您的数据集上训练新层。最后一个可选步骤是微调,包.原创 2022-01-04 13:54:27 · 1613 阅读 · 2 评论 -
解决ModuleNotFoundError: No module named ‘tensorflow_datasets‘
Traceback (most recent call last): File "E:/Code/PyCharm/TensorFlow学习/Keras/迁移学习和微调.py", line 14, in <module> import tensorflow_datasets as tfdsModuleNotFoundError: No module named 'tensorflow_datasets'解决办法pip install tensorflow-datas.原创 2022-01-04 13:40:07 · 1251 阅读 · 0 评论 -
TensorFlow自己定义EarlyStop回调函数通过监测loss指标
TensorFlow训练模型需要经过多个epoch,但是并不是epoch越多越好,很有可能训练一半的epoch时,模型的效果开始下降,这是我们需要停止训练,及时的保存模型,为了完成这种需求我们可以自定义回调函数,自动检测模型的损失,只要达到一定阈值我们手动让模型停止训练完整代码""" * Created with PyCharm * 作者: 阿光 * 日期: 2022/1/4 * 时间: 10:32 * 描述:"""import numpy as npimport tensorflow原创 2022-01-04 10:41:36 · 762 阅读 · 0 评论 -
TensorFlow自定义回调函数【全局回调、批次、epoch】
由于TensorFlow已经将整个模型的训练阶段进行了封装,所以我们无法在训练期间或者预测评估期间定义自己的行为,例如打印训练进度、保存损失精度等,这是我们就可以利用回调函数所有回调函数都将 keras.callbacks.Callback 类作为子类,并重写在训练、测试和预测的各个阶段调用的一组方法。回调函数对于在训练期间了解模型的内部状态和统计信息十分有用。您可以将回调函数的列表(作为关键字参数 callbacks)传递给以下模型方法:keras.Model.fit()keras.Model.原创 2022-01-04 10:16:13 · 958 阅读 · 0 评论 -
TensorFlow实现GAN生成对抗网络生成MNIST图像
生成对抗网络 (GAN)。通过学习图像训练数据集的隐分布(图像的“隐空间”),GAN 可以生成看起来极为真实的新图像。一个 GAN 由两部分组成:一个“生成器”模型(可将隐空间中的点映射到图像空间中的点)和一个“判别器”模型,后者是一个可以区分真实图像(来自训练数据集)与虚假图像(生成器网络的输出)之间差异的分类器。GAN 训练循环如下所示:1.训练判别器在隐空间中对一批随机点采样通过“生成器”模型将这些点转换为虚假图像获取一批真实图像,并将它们与生成的图像组合训练“判别器”模型以对生成的图原创 2022-01-03 20:56:25 · 1595 阅读 · 1 评论 -
TensorFlow中常见内置回调Callback
class BaseLogger:计算每个epoch周期的平均指标,这个回调已经被自动应用在每个Keras模型,所以不需要手动设置callbacks = tf.keras.callbacks.BaseLogger( stateful_metrics=None)model.fit( train_data, labels, epochs=5, batch_size=32, validation_split=0.2, callbacks=callb原创 2022-01-03 14:57:02 · 918 阅读 · 1 评论 -
TensorFlow实现学习率衰减
训练深度学习模型的常见模式是随着训练的进行逐渐减少学习。这通常称为“学习率衰减”。学习衰减时间表可以是静态的(根据当前周期或当前批次索引预先确定),也可以是动态的(响应模型的当前行为,尤其是验证损失)。将时间表传递给优化器通过将时间表对象作为优化器中的 learning_rate 参数传递,您可以轻松使用静态学习率衰减时间表:initial_learning_rate = 0.1lr_schedule = keras.optimizers.schedules.ExponentialDecay(原创 2022-01-03 08:34:59 · 718 阅读 · 0 评论 -
TensorFlow指定每个epoch验证多少个批次数据集
这里使用参数validation_steps,它的意思是我们在验证过程中不必使用所有验证集中的数据进行验证,可以指定给定batch的数据,下方的例子就是我们每次验证验证集前10个batch的数据model.fit( train_dataset, epochs=1, validation_data=val_dataset, validation_steps=10,)...原创 2022-01-02 19:45:07 · 668 阅读 · 0 评论 -
TensorFlow指定每个epoch训练多少个批次的数据
如果我们的数据量过大,我们需要将数据转化成Dataset实例,但是这样我们无法指定需要训练的数据,因为所有数据已经被封装在一个迭代器里面,是多个批次数据所以针对这个问题,fit()函数中有个参数可以指定我们每轮训练多少个批次的数据steps_per_epoch:这个参数的意思就是我们每个epoch训练多少个batch的数据model.fit(train_dataset, epochs=3, steps_per_epoch=100)...原创 2022-01-02 19:43:12 · 821 阅读 · 0 评论 -
TensorFlow使用DataSets加载数据
在TensorFlow中fit()函数可以接收numpy类型数据,前提数据量不大可以全部加载到内存中,但是如果数据量过大我们就需要将其按批次读取,转化成迭代器的形式,也就是DataSets可以将 Dataset 实例直接传递给方法 fit()、evaluate() 和 predict():如果使用DataSet就不需要像numpy数据那种在fit中指定batch_size了完整代码:""" * Created with PyCharm * 作者: 阿光 * 日期: 2022/1/2 * 时间原创 2022-01-02 19:39:21 · 713 阅读 · 0 评论 -
TensorFlow自定义评估指标
TensorFlow内置常用指标:AUC()Precision()Recall()等等有些时候我们的指标不止这些,需要根据我们自己特定的任务指定自己的评估指标,这时就需要自定义Metric,需要子类化Metric,也就是继承keras.metrics.Metric,然后实现它的方法:__init__:这个方法是用来初始化一些变量的update_state:参数有真实值、预测值,采样权重,我们需要在这个方法内进行更新状态变量result:使用状态变量计算最终的评估结果reset_sta原创 2022-01-02 18:56:13 · 1144 阅读 · 0 评论 -
解决TypeError: tf__update_state() got an unexpected keyword argument ‘sample_weight‘
2022-01-02 18:41:16.826148: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)Traceback (most recent call last): File "E:/Code/PyCharm/TensorFlow学习/Keras/自定义评估指标.py", line 59,.原创 2022-01-02 18:47:07 · 1531 阅读 · 0 评论 -
TensorFlow自定义损失函数
TensorFlow损失函数:MeanSquaredError()KLDivergence()CosineSimilarity()等等在TensorFlow中已经内置了很多常用的损失函数,可以满足我们的模型训练要求,但是有的时候我们自己特定的任务会有自己的损失函数,这样TensorFlow库中的函数就不会满足我们,我们就需要自己定义计算损失的方法。在TensorFlow提供了两种方式自定义损失函数:自定义函数Loss类子类化下面我们以自定义MSE均方误差作为示例:方式一:自定原创 2022-01-02 16:27:09 · 2320 阅读 · 0 评论 -
TensorFlow利用函数API实现简易自编码器
该示例创建了一个编码器模型、一个解码器模型,并在两个调用中将它们链接,以获得自动编码器模型:编码器模型:将输入源数据进行压缩编码,一定程度上可以去除输入数据的噪音,最大程度上保留图像的原始特征解码器模型:将编码器编码压缩后的数据按照一定策略进行解压,也就是解码,将压缩后的数据还原成原始的数据,但是经过这样一个操作后,输出和原始数据肯定是会有损失的,所以像图像填充、音频去噪就是按照这个原理实现的,保留原始数据最重要的特征,取出掉数据中的噪音。完整代码:""" * Created with .原创 2022-01-02 12:40:49 · 163 阅读 · 0 评论 -
TensorFlow提取和重用层计算图中的节点
由于要处理的层计算图是静态数据结构,可以对其进行访问和检查。而这就是将函数式模型绘制为图像的方式。这也意味着您可以访问中间层的激活函数(计算图中的“节点”)并在其他地方重用它们,这对于特征提取之类的操作十分有用。让我们来看一个例子。下面是一个 VGG19 模型,其权重已在 ImageNet 上进行了预训练:下面的代码就是首先调用VGG19模型,我们需要VGG19中间层提取到的特征,所以我们指定输出为VGG19的输入,然后输出是VGG19中间内部的每个层,这样当我们传入一个图片数据给这个模型时,我们就会原创 2022-01-02 11:52:23 · 708 阅读 · 0 评论 -
TensorFlow利用函数式API实现共享层
有些时候我们需要对一些输入层进行权值共享,这个目的就是有些输入源的数据是非常类似的,我们可以使用同一个层来进行捕捉特征,比如左右眼图片识别等,左右眼的结构较为类似,所以我们可以使用一个共享卷积核进行操作,而不需要两个卷积分别作用于两个眼部输入源。共享层通常用于对来自相似空间(例如,两个具有相似词汇的不同文本)的输入进行编码。它们可以实现在这些不同的输入之间共享信息,以及在更少的数据上训练这种模型。如果在其中的一个输入中看到了一个给定单词,那么将有利于处理通过共享层的所有输入。函数式 API 的另一个很.原创 2022-01-02 11:18:01 · 347 阅读 · 0 评论 -
TensorFlow实现多输入源多输出
TensorFlow实现多输入多输出模型有时我们的输入数据不只一个,会存在多个输入源,多个输出源,对于这种情况我们使用Sequential显然是不行的,因为Sequential只能够搭建线性拓扑模型,对于那种流水线型的模型较为适合,如果是非线性拓扑,复杂的拓扑使用Sequential是不能够实现的,这是我们就需要使用Function API,它会使我们处理多输入多输出变得简单。例如,如果您要构建一个系统,该系统按照优先级对自定义问题工单进行排序,然后将工单传送到正确的部门,则此模型将具有三个输入:.原创 2022-01-01 20:41:24 · 2419 阅读 · 3 评论 -
解决AttributeError: module ‘keras.utils‘ has no attribute ‘plot_model‘
2022-01-01 19:41:58.347964: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2To en.原创 2022-01-01 19:45:49 · 5134 阅读 · 0 评论 -
TensorFlow中Embedding和One-Hot的区别
在推荐系统或者一些大型文本分类数据任务上,对于一些数据的维度非常高,而且因为稀疏型(分类)特征不能直接喂给模型,我们需要将其映射成稠密连续特征(数值型)。原创 2021-12-30 15:54:24 · 740 阅读 · 0 评论 -
TensorFlow训练网络两种方式
TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器两种方式区别是:第一种是要加载全部数据形成一个tensor,然后调用model.fit()然后指定参数batch_size进行将所有数据进行分批训练第二种是自己先将数据分批形成一个迭代器,然后遍历这个迭代器,分别训练每个批次的数据方式一:通过迭代器IMAGE_SIZE = 1000# step1:加载数据集(train_images, train_labels), (val_images, val_原创 2021-12-27 19:47:07 · 1864 阅读 · 2 评论 -
TensorFlow将Tensor或者numpy数据变成迭代器
(train_images, train_labels), (val_images, val_labels) = tf.keras.datasets.mnist.load_data()train_loader = tf.data.Dataset.from_tensor_slices((train_images, train_labels)).batch(32)val_loader = tf.data.Dataset.from_tensor_slices((val_images, val_labels)原创 2021-12-27 19:41:53 · 734 阅读 · 0 评论 -
Tensorflow训练模型使用history绘制结果无绘制曲线解决方案
使用Tensorflow训练模型,然后调用history里面的日志数据,用于绘制结果,发现图中没有数据出现问题原因可能是你的epoch数为1,图中只是绘制了一个点,并不是没有数据,只是一个点无法看到而已,将epoch调大,这样就可以绘制出折线,两点确定一条直线。...原创 2021-12-26 18:44:17 · 4295 阅读 · 0 评论 -
ValueError: Negative dimension size caused by subtracting 5 from 1 for ‘{{node le_net5/conv2d/Conv2D
ValueError: Negative dimension size caused by subtracting 5 from 1 for '{{node le_net5/conv2d/Conv2D}} = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], explicit_paddings=[], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true](le_n原创 2021-12-26 21:57:16 · 867 阅读 · 0 评论 -
TensorflowConv2D:AttributeError: ‘int‘ object has no attribute ‘lower‘
AttributeError: 'int' object has no attribute 'lower'出现问题原因: self.conv1 = Conv2D(filters=6, kernel_size=5, padding='same')当使用Conv2d层搭建网络,需要使用padding进行填充,但是Tensorflow的padding参数值只有两种可选方式,分别.原创 2021-12-27 09:01:53 · 4755 阅读 · 3 评论 -
TensorFlow修改图像尺寸:AttributeError: module ‘tensorflow._api.v2.image‘ has no attribute ‘image‘
AttributeError: module 'tensorflow._api.v2.image' has no attribute 'image'tensorflow版本改动太大,新版2.7修改图像尺寸的函数变成了train_images = tf.image.resize(train_images, [32, 32])原创 2021-12-27 09:15:17 · 917 阅读 · 0 评论 -
ValueError: This model has not yet been built. Build the model first by calling `build()` or calling
ValueError: This model has not yet been built. Build the model first by calling `build()` or calling `fit()` with some data, or specify an `input_shape` argument in the first layer(s) for automatic build.TensorFlow打印模型结构时发生上述问题model.summary()发生问题的原因是.原创 2021-12-27 13:06:55 · 1951 阅读 · 0 评论 -
TensorFlow2._:model.summary() Output Shape为multiple解决方法
使用TensorFlow2.*版本进行构建模型,然后打印模型的结构发现Output Shape为multiple,出现的原因是模型不知道输入数据的格式三种解决办法:方法一:使用函数式API# 指定输入和输出层model=Model(Input(shape=(None,28,28,1)),outputs)方法二:在class类中第一个层添加input_shapeself.conv1 = Conv2D(filters=6, kernel_s.原创 2021-12-27 13:45:14 · 3296 阅读 · 0 评论 -
Optimization loop failed: Cancelled: Operation was cancelled解决方案
2021-12-27 17:45:07.871890: W tensorflow/core/data/root_dataset.cc:167] Optimization loop failed: Cancelled: Operation was cancelled2021-12-27 17:45:07.877953: W tensorflow/core/data/root_dataset.cc:167] Optimization loop failed: Cancelled: Operation was.原创 2021-12-27 18:04:06 · 6972 阅读 · 0 评论