dose model.fit()调用Keras中的model.predict()?

我总是假设model.fit()调用model.predict()某个地方,因为损失函数是用y\u true和y\u pred定义的。但是,我注意到model.predict()返回一个numpy数组,y\u pred是一个张量。y_pred不是来自预测函数吗 谢谢你的帮助 不,它不调用model.predict() 您可以查看源代码,但它相当长且复杂:谢谢,我明白了。如果我需要使用model.predict()的结果来定义一个损失函数,然后再回去微调LSTM,该怎么办。我可以只将y_pred转

Keras 时间分布层可以用于多对一LSTM吗?

在Keras中,我发现许多人在训练多对一LSTM模型时将“返回序列”指定为False。 我想知道我是否可以为每个时间步单元使用一个时间分布层,然后在上面使用一个密集层来获得输出?是的,您可以这样做。 问题是,你想要实现什么。return_序列返回所有隐藏状态,通常用于堆叠多个LSTM或用于顺序对顺序预测(多对多)。默认值为“False”,因为它不是使用序列输出的标准用例 当您使用最终密集层中的序列输出进行多对一预测时,它实际上没有帮助,因为LSTM应该已经学会了这样做。尝试一下,有时会有帮助,但

如何检查keras培训是否已经在GPU中运行?

有时我犯了一个错误,试图在同一个GPU(两个不同的脚本)中使用keras同时运行两个训练,使我的机器崩溃或破坏两个训练 我想能够在我的脚本测试,如果有一些训练运行,因此要么改变gpu或停止新的训练 我在搜索答案时发现的唯一提示是使用nvidia smi检查GPU中运行的进程 nvidia smi输出示例: +-----------------------------------------------------------------------------+ | NVIDIA-SMI 411

Keras 最小化和最大化损失

我想训练一个自动编码器,使重建误差在某些观测值上较低,而在其他观测值上较高 from keras.model import Sequential from keras.layers import Dense import keras.backend as K def l1Loss(y_true, y_pred): return K.mean(K.abs(y_true - y_pred)) model = Sequential() model.add(Dense(5, input_di

使用keras模型检查输入时出错

我是火车模型,将模型保存在磁盘上,使用模型时出错 Error when checking input: expected conv2d_input to have 4 dimensions, but got array with shape (150, 150, 3) 列车型号: model = Sequential() model.add(Conv2D(32, (3, 3), input_shape=(150, 150, 3)) 使用模式: model = load_model(os.p

Keras 为什么模型的训练精度在一定时期内增长非常缓慢(几乎保持稳定)?

我正在处理CIFAR-10数据集,并试图获得基准或至少90%的准确性。我已经尝试了下面提到的所有方法,但大多数都会产生相同的结果,那就是经过一段时间后,训练精度没有提高,并且保持稳定,验证精度也略有波动。 数据集目录如下所示: \cifar \train(total 40,000 images. 4000 images per class. Total 10 classes) \airplane \automobile......(similar struc

使用Keras加载训练图像

要使用Keras训练模型,我是否应该将所有图像加载到一个数组中,以创建类似 x_train, y_train 或者,有没有更好的方法在训练时在飞行中读取图像。我没有寻找ImageDataGenerator类,因为我的输出是一个点数组,而不是基于目录名的类 我设法将我的数据csv文件包含在9列中的点阵列和图像文件名,如下所示: x1 x2。。。。。x8 Image_file_name将整个数据集加载到阵列中的内存中不是一个好主意,因为内存消耗可能会失控,因此应该使用生成器。ImageDataGe

Keras 在每个历元之后,精度保持不变

我已经创建了一个模型来对飞机和汽车图像进行分类,但在非常长的时间之后,acc和val_acc保持不变 import numpy as np import matplotlib as plt from keras.models import Sequential from keras.layers import Convolution2D from keras.layers import MaxPooling2D from keras.layers import Flatten from kera

Keras 如何预处理用于训练字符级RNN的数据

我正在尝试训练一个RNN模型,它对名字的来源进行分类。数据看起来像附加的图像。我知道我必须首先将标签映射为整数。我正在使用以下代码来执行此操作: from sklearn.preprocessing import LabelEncoder encoder = LabelEncoder() origin_label = encoder.fit_transform(origins) 我很难弄清楚接下来的步骤是什么。我正在使用Keras构建这个模型。非常感谢你的帮助

使用tf.TensorSpec函数保存输入来自多个位置的Keras模型

我正在处理一些演示数据来构建一个二进制分类器。有8个分类变量(假设这8个分类变量已经是整数编码的)以及14个数值变量 我将分类输入和数字输入分开,并创建两部分输入:8个分类输入首先进入嵌入层。嵌入层将连接到14维数字输入层 因此,整个模型的实际(一条记录/一行)/输入如下: [1,2,3,4,5,6,7,8,[1,2,3,4,…,14]] 我的模型结构是这样的 cat_inputs = [] embeddings = [] for col in encoded_vars: #

Keras模型的输入数组的形状有什么问题?

我有一个经过训练的图像分类模型。该模型基于Keras附带的异常模型,它期望输入图像的大小为299x299像素。因此,在将图像输入模型之前,我会将图像调整为该格式 但是,当调用model.predict(img)时,我确实会得到以下错误: ValueError: Input 0 is incompatible with layer model:expected shape=(None, 299, 299, 3), found shape=(None, 299, 3) 但是,当我在调试器中调用pr

在keras中使用后端的优化器

我可以看到keras已经重新实现了优化器。我想使用keras中不可用的优化器,但在后端可用,例如tensorflow: tf.train.FtrlOptimizer 你能给我一些要点吗?我需要做些什么,破解框架,从后端使用优化器 谢谢,, Jozef好吧,我想办法是添加一个包装优化程序你介意更详细地分享你的发现吗?您是如何更具体地添加包装优化程序的?

如何将合并函数转换为在Keras 2上可读。?

我有一个为keras1.x.x编写的程序,我正试图在keras2.x.x中重新运行它。但是到了这个时候, from keras.layers import Input, merge up2 = merge([UpSampling2D(size=(2, 2))(conv5), conv4], mode='concat', concat_axis=1) 它显示以下错误: UserWarning: The `merge` function is deprecated and will be rem

将数据传递到Keras中的自定义图层

我正试图实现本文中的可微神经词典:在Keras中 我正在创建一个自定义层作为DND,但是每次运行时我都需要将数据传递给该层,特别是键和Q值。不幸的是,到目前为止我还不能,有没有办法通过某种函数调用将这些值传递给我的自定义层 似乎一旦层被创建和编译,我就不能修改或附加任何信息到它的数据结构中,但是任何和所有的帮助都是非常感谢的 自定义层为DNDLayer dnd = DNDLayer()(previous_layer) ...compile model etc... dnd.method() 导

Keras 在复杂模型中插入中间层

我已使用加载了一个resnet模型 >从Kalas.Apvest.RESNET50导入ReNET50,现在我想在模型中间插入一些新的层。 上面的链接中描述了一个解决方案,但是ResNet模型在其架构中也有一些添加层,这就是我得到以下错误的原因: ValueError: A merge layer should be called on a list of inputs. >由快捷路径和主路径组成。难度取决于添加或删除的位置和方式,即修改短路径、修改主路径或删除路径。 如果您在块之间插入新

Keras JHDF5(Java的HDF5)中有没有一种方法可以列出HDF5文件中的所有路径?

JHDF5(Java的HDF5)中是否有任何方法可用于列出H5文件中的所有路径 我有一个H5文件(使用Keras生成),我不知道如何从中检索数据集。不管我怎么努力,我都找不到一种方法可以做到这一点。感谢您的帮助 首先创建一个HDF5ArchiverFactory和open()(或openForReading())文件。这将为您提供一个IHDF5Archiver(或IHDF5ArchiveReader),您可以在其上调用list(),以获取存档的成员 JHDF5的文档是可怕的自动生成的废话。如果您

从keras数据生成器生成数据

我想预览keras图像数据生成器的输出。例如,如何从生成器生成5幅图像 train_datagen = ImageDataGenerator( rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_datagen = ImageDataGenerator(rescale=1./255) train_generator = train

Keras predict_生成器输出不同数量的样本

我正试图通过使用数据扩充来改进迁移学习模型的性能,该模型使用异常作为预训练模型。目标是对狗的品种进行分类train_张量和valid_张量分别在numpy数组中包含训练图像和测试图像 from keras.applications.xception import Xception model = Xception(include_top = False, weights = "imagenet") datagen = ImageDataGenerator(zoom_range=0.2,

Keras (TalosReturnError)Talos确保输入模型返回';输出,型号';model.fit()

我试图通过使用talos库调整CNN模型的超参数,但我得到了确保函数返回模型和输出的错误。但是在我的函数中,我返回两个变量 我试过很多文章,但它们的命令都很好。我正在kaggle笔记本上写代码 def Talos_Model(X_train, y_train, X_test, y_test, params): #parameters defined lr = params['lr'] epochs=params['epochs'] dropout_rate=par

simplernkeras中的矩阵计算

我试图理解SimpleRN中涉及的矩阵计算 我从一些博客文章和stackoverflow中了解到,SimpleRN(单位)创建了一个层,其中每个层中包含RNN的单位数。 SimpleRN涉及以下计算 W=内核#形状-(1,单位) U=循环的_内核#形状-(单位,单位) B=偏差#形状-(单位) 输出=新状态=动作(W*输入+U*状态+B) 请帮助我了解以下代码段的输入和输出维度 生成X和Y的函数。其中Y是X的累积和 “def生成_批次(n=256): 模型=顺序() add(SimpleRNN(

Keras 如何在CONVLSM模型中使用多层

我喜欢使用多层CONVLSM模型检查我的模型。我的训练数据的形状是 trainX.shape (5000, 200, 4) # testX.shape (2627, 200, 4) 下面是我的代码,它运行良好 print('trainX.shape', trainX.shape) # trainX.shape (5000, 200, 4) print('testX.shape', testX.shape) # testX.shape (2627, 200, 4) # reshape into

keras中二维元素的填充序列

我有一组样本,每个样本都是一组属性的序列(例如,一个样本可以包含10个序列,每个序列有5个属性)。属性的数量始终是固定的,但序列的数量(即时间戳)可能因样本而异。我想使用这个样本集来训练Keras中的LSTM网络以解决分类问题,因此我应该填充所有批次样本的输入大小,使其相同。但是keras中的pad_sequences处理器获得固定数量的具有可变属性的序列,并在每个序列中填充缺失的属性,而我需要向每个样本添加更多具有固定属性长度的序列。因此,我认为我不能使用它,因此我分别填充了我的样本,并制作了

使用keras的多输出数据(神经网络)的GridsearchCV超参数调整

我有一个数据,有两个输出变量和多个输入变量,我用神经网络建立模型,但现在我想做超参数调整 对于调优,我使用了网格搜索,我编写了网格搜索的代码,但在尝试grid.fit(X_train,Y_train)时出现错误错误是ValueError:Check model target时出错:传递给模型的Numpy数组列表不是模型预期的大小。预期会看到2个数组,但得到了以下1个数组的列表:[array([[1.62970054,2.33817343], 然后我制作了两个不同的数组,然后作为grid.fit(

Keras Word2Vec子采样——实现

我正在Pytorch和Tensorflow2中实现该模型。我对频繁单词的二次抽样的实施有疑问。从论文中逐字计算,对单词wi进行二次抽样的概率为 其中,t是一个自定义阈值(通常是一个小值,如0.0001),而f是文档中单词的频率。尽管作者以一种不同但几乎相同的方式实现了它,但让我们坚持这个定义 当计算p(wi)时,我们可以得到负值。例如,假设我们有100个单词,其中一个单词的出现频率比其他单词高(我的数据集就是这样) 将numpy导入为np 导入seaborn作为sns np.random.se

Keras 卷积1D到卷积2D

总结问题 我有一个来自76000个数据点长的传感器的原始信号。我想 用CNN处理这些数据。要做到这一点,我想我可以使用Lambda层从原始信号(如 x = Lambda(lambda v: tf.abs(tf.signal.stft(v,frame_length=frame_length,frame_step=frame_step)))(x) 这完全有效。但我想更进一步,提前处理原始数据。希望卷积1D层能起到滤波器的作用,让一些频率通过,并阻止其他频率 我尝试的 我确实有两个独立的(Conv1

无论如何,在Mac和AMD GPU中使用Keras?

我有一个带有AMD处理器的MacBookPro,我想在这个GPU上运行Keras(Tensorflow后端)。我开始知道Keras只适用于NVIDIA GPU。解决方法是什么(如果可能)?您可以使用库来克服此问题。我已经测试过了,对我来说效果很好 注意:我有python版本3.7,我将使用pip3进行软件包安装。 步骤: 使用以下命令安装OpenCL包 pip3安装pyopencl 使用以下命令安装库 pip3安装pip安装plaidml keras 运行PlaidML的安装程序。安装时,您

损失函数和精度不会改变keras

我的Keras模型没有学到任何东西,我也不知道为什么。问题是,在训练期间,损失值和精度值不变。我尝试过提高学习速度,但没有效果,我也尝试过更换optmizers,但没有任何改进。 完整代码如下: import random import pandas as pd import tensorflow as tf from keras.utils import np_utils from keras.utils import to_categorical from sklearn.preproces

Keras 如何在深度学习神经网络中实现未知类?

我正在研究多类害虫分类。我要鉴定10种昆虫。但项目要求还包括一个未知类,即如果任何输入不属于10个类中的任何一个,模型应将其分类为“未知类”。 我无法定义此未知类。如果有人有任何想法,请帮助我。 不,我没有使用任何“未知类”的示例。事实上,这是不可行的,因为有无限的东西可以超出我拥有的10类,可以被视为“未知类”。下面是我的代码: import pandas as pd import numpy as np import os import keras import matplotlib.pyp

为什么Caffe的准确度高于tf.keras?

我将模型从tf.keras转换为caffe。当我在测试集上使用Caffe评估模型时,我发现使用Caffe比使用tf.keras的精度更高。我想不出一个办法来找出问题的根源(如果一开始就有问题……) 这种差异是由于用于加速计算的较低级别库造成的(我想到的是cudnn和caffe引擎)?tensorflow的keras模块是否存在众所周知的精度问题? 顺便说一下,还有其他人也有类似的问题: 这是可能发生的 将keras.h5模型转换为.caffemodel后,将以数字形式复制权重。但是,在内部,您

Keras 我正在尝试使用NSL-KDD数据集训练卷积神经网络

运行上述代码,我得到以下错误: lstm_output_size = 128 cnn = Sequential() cnn.add(Convolution1D(64, 3 ,activation="relu",input_shape=(105, 1))) cnn.add(Convolution1D(64, 3, activation="relu")) cnn.add(MaxPooling1D(pool_size=(2))) cnn.add(Flatten(

mxnet或keras为什么会有不同的结果?

我有自己的数据集。我想做一个分类任务。但我在Mxnet和Keras中构建了相同的符号网络。甚至优化器规则也是一样的。但结果是不同的 我的Mxnet代码如下: 结果:看起来像拉姆登? 但我的keras代码与网络相同: 但结果要好得多。在训练集中,我可以100% 我仍然不明白为什么有相同的网络架构和数据是相同的。然而,两帧之间的分类结果很大 希望有人能给点建议。Thx。原始海报似乎已经放弃了这个问题。您使用什么数据进行培训?您使用的是什么数据迭代器?尝试调整学习率和批量大小。如果数据是公开

Keras:嵌入LSTM

在LSTM上用于建模IMDB序列数据()的keras示例中,在输入LSTM层之前有一个嵌入层: model.add(Embedding(max_features,128)) #max_features=20000 model.add(LSTM(128)) 嵌入层真正做什么?在这种情况下,这是否意味着进入LSTM层的输入序列的长度是128?如果是这样,我可以将LSTM层写为: model.add(LSTM(128,input_shape=(128,1)) 但还应注意的是,输入X_列已进行pad

添加不同大小输入和输出的Keras Lambda层时的广播问题

我搜索并发现了类似的问题,但没有一个问题与我所面临的问题相同。我正在尝试使用Theano后端(都是最新版本)实现Keras的神经网络,它涉及一个Lambda层,该层获取一个层的一维输出,并将其转换为一个n维向量,一维输出重复n次 我似乎遇到的问题是,在Lambda层,Keras似乎期望输入与我指定的输出形状具有相同的维度: x=Input(shape=(2,)) V1=Dense(1)(x) V2=Lambda(lambda B : B[0,0]*K.ones((3,)),output_shap

KERAS中GRU的默认隐藏状态是什么?

我知道输入权重的初始值设定项是“glorot_uniform”,隐藏统计数据权重的初始值设定项是“正交”,偏差的初始值设定项是“零” 但是我不知道GRU的第一个隐藏状态的初始值是零。您可以在中找到以下行 def get_初始_状态(自身,输入): #构建形状的全零张量(样本、输出) 初始状态=K.zeros_like(输入)#(采样、时间步、输入尺寸) 初始_状态=K.sum(初始_状态,轴=(1,2))#(样本,) 初始_状态=K.expand_dims(初始_状态)#(示例,1) 如果has

在Keras中,如何将精度定义为损失函数?

众所周知,keras中的稀疏类交叉熵可以得到各类之间的平均损失函数。但如果我最关心的只是某一类呢?比如,如果我想将基于该类别的精度(=TP/(TP+FP))定义为损失函数,我如何编写它?谢谢 我的代码是: from keras import backend as K def my_loss(y_true,y_pred): y_true = K.cast(y_true,"float32") y_pred = K.cast(K.argmax(y_pred),"float32")

如何在get_keras_嵌入中使用填充值

我尝试将gensim的get\u keras\u嵌入集成到一个keras模型中 首先我做文本预处理 text\u to\u word\u序列将文本转换为令牌序列 w2v.vocab[tok].index将单词转换为gensim的单词索引 pad_序列(序列,maxlen=MAX_序列长度,value=999999)padding带有一些值 然后我建立了一个模型 embedding_layer = w2v.get_keras_embedding(train_embeddings=False) ..

自定义度量中的Keras to_分类给出了错误

我试图使用自定义(f-1分数)指标,同时在lstm crf模型中使用keras.utils的分类。我正在测试来自keras.contrib conll2000\u chunking\u crf的示例。但是,我在度量中传递的y_true没有形状,因此to_Category不起作用。我可以做些什么来将y_true转换为度量中的一个热表示吗? 这里是f-1分数的代码,这与Keras在被删除之前使用的代码差不多。 这是火车的形状,测试 print(train_x.shape) print(train_x

Keras层不太致密

前一层是嵌入大小(V clases,K-outputdim)-我想引入一个权重矩阵大小K x T。权重是可训练的(嵌入也是如此)。它们生成一个VxT矩阵,将在下游使用。 1) 我该怎么办? 2) 这会影响梯度吗 基本上是向量x矩阵。 示例-嵌入vocab=10,dim K=4。对于词汇表中的某个特定成员,我的嵌入权重是一个向量大小(1,4)(想想行向量) 对于每一行向量,我想乘以一个4×10的权重矩阵,得到一个1×10的向量(或层)。权重矩阵对于词汇表的所有成员都是通用的 该1 x 10矢量将输

Keras 深度学习,奇怪的批量规范化

下面是我的发电机结构。 如您所见,如果我删除批处理规范化,GAN将非常好地工作。 但是如果我在注释处添加批处理规范化,它只显示噪声 我不知道为什么。我曾尝试只向生成器或鉴别器添加BN,或同时向两者添加BN。 即使我只在任何地方添加了一个BN层,它也不会起作用 我正在试图修复git的源代码 我知道这是用韩语解释的,你们不容易理解,但这是keras教科书非常简单的来源 Dense(128 * 16 * 16) LeakyReLU Reshape((16, 16, 128)) Conv2D(256,

Keras MLflow保存每个历元后的权重

我已经用MLflow跟踪测试了一些小例子,但是对于我的用例,我希望在每个历元之后保存权重。 有时我会在跑步完全完成之前终止跑步(我不能使用EarlyStoping),但我现在的体验是,权重不会保存到跟踪ui服务器。 是否有办法在每个历元之后执行此操作?将权重保存到磁盘,然后将其作为工件记录。只要检查点/权重保存到磁盘,就可以使用mlflow\u log\u artifact()或mlflow\u log\u artifact()记录它们。从 mlflow.log\u artifact()将本地文

CoreML LSTM输入不';t匹配Keras输入形状

我试图将一个非常简单的keras模型转换为CoreML,但是,CoreML模型的输入似乎与我的期望不符 我正在创建的模型的输入形状是(5,10)(五个时间步,10个特征),但是,在转换模型并在Xcode中打开模型后,它表示输入类型是多数组(双10),据我所知,这是一个一维数组。我的问题是,我做错了什么?有没有办法告诉CoreML输入是5x10 这是我正在创建的keras模型 from keras.models import Sequential from keras.layers import

Keras 验证生成器批量大小

我在一个相当困难的数据集上训练CNN。我得到了一些非常好的结果,但注意到我成功地将验证生成器的批量大小设置为1。但列车批量大小设置为32。如果我知道将验证批大小也更改为32,那么我的结果很糟糕,我很难训练网络 我只是想不通为什么将验证批大小设置为1或32会有任何区别。Iam使用MSE作为度量,认为这只是所有样本的平均值 那么,为什么批大小为1时会得到好的验证丢失结果,而批大小为32时会得到坏的验证丢失结果呢?如果批量大小为1,可以训练模型吗?或者我的模型在这种情况下训练过度了 提前感谢您的建议

为什么CuDNNLSTM比keras中的LSTM有更多的参数?

我一直在尝试计算Keras中LSTM单元中的参数数量。我创建了两个模型,一个使用LSTM,另一个使用CuDNNLSTM 模型的部分总结如下所示 CuDNNLSTM模型: _________________________________________________________________ Layer (type) Output Shape Param # =======================

为NLP保存keras模型和标记化程序的最佳方法是什么?

我已经多次使用以下代码段: 保存: # saving model and tokenizer with open('./static_models/tokenizer.pickle', 'wb') as handle: pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL) model.save('./static_models/model.h5') 装载: model = models.load_model(

如何在keras上使用时间分布层?

因此,当我尝试用LSTM训练模型时,我将输入数据重新调整为(1000,96,1),将数据输出为(1000,24,1),这意味着我想用之前的96个数据预测未来的24个数据。 当我添加一个时间分布密集层作为最后一层时,我得到一个错误: ValueError: Error when checking target: expected time_distributed_1 to have shape (96, 1) but got array with shape (24, 1) 那怎么了? 这是我的

Q:ValueError Keras预期conv2d_14_输入具有形状(3,12,1),但获得具有形状(3,12,6500)的数组?

我正在为窗口10上的Keras 2.1.0中的非图像数据建立CNN 我的输入特征是一个非负数的3x12矩阵,输出是一个长度为6x1的二进制多标签向量 我遇到了这个错误期望conv2d_14_输入具有形状(3,12,1),但得到了具有形状(3,12,6500)的数组 下面是我的代码 import tensorflow as tf from scipy.io import loadmat import numpy as np from tensorflow.keras.layers import B

Keras 如何嵌入N-gram

为了改进我的模型,我使用基于字符的3-Gram来代替word:) 代码片段如下所示: def生成内存(已发送列表、N、语音大小、序列大小): NGramList=[] 对于“已发送”列表中的“已发送”: # ---------------------------- حذف فاصله ---------------------------- 已发送=已发送。替换(“,”) # ------------------------- استخراج ان تایی ها --------------

Keras 如何从图像\数据集\从\目录()中选择自定义图像

我有10个不同的文件夹(类),每个文件夹中都有几个图像。 例如,我的图像名称是Dog_L1、Dog_L2、…Dog_L1000(位于Dog文件夹中)和Cat_L1、Cat_L2、。。。在Cat文件夹中,其余文件夹用不同动物的名称和标签命名(通常为animal_L1、animal_L2、…animal_L1000)。 我想使用image\u dataset\u from\u directory()来读取文件夹,而且我想读取一些特定的图像,而不是从所有文件夹中读取所有图像 例如,我只想从所有文件夹中

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 60 页