有人能告诉我LSTM(5,…)中的5和densed(1)中的1是做什么的吗
谢谢。
中的“5”是输出空间的维度,这意味着:
输入数组具有input_shape=(1,30)中定义的形状
输出数组的形状为(*,5)
中的“1”也是输出空间的维度,这意味着:
输入阵列具有LSTM层(*,5)中的输出形状
输出数组的形状为(*,1)
中的“5”是输出空间的维度,这意味着:
输入数组具有input_shape=(1,30)中定义的形状
输出数组的形状为(*,5)
中的“1”也是输出空间的维
我正在使用一个经过微调的VGG16模型,使用预训练的“VGGFace”权重处理野外的标记面(LFW数据集)。问题是,经过一个历元(约0.0037%)的训练后,我得到了一个非常低的精度,即模型根本没有学习
我认为这与我的架构有关。我的架构是这样的:
vgg_x = VGGFace(model = 'vgg16', weights = 'vggface', input_shape = (224,224,3), include_top = False)
last_layer = vgg_x.get_l
我有以下型号:
from keras.layers import Activation, Input, Dense
from keras.models import Model
from keras.layers.merge import Concatenate, concatenate
input_ = Input(batch_shape=(512, 36))
x = input_
x1 = Dense(4)(x)
x2 = Dense(4)(x)
x3 = Dense(4)(x)
x4
我需要确认两个指纹(来自身份证和传感器)是否匹配。下面是我数据库中的一些示例(3000对图像):
匹配图像的示例
不匹配图像的示例
我正在尝试训练一个暹罗网络,该网络接收一对图像,如果它们不匹配,其输出为[1,0],如果它们匹配,其输出为[0,1],然后我用Keras创建了我的模型:
image_left = Input(shape=(200, 200, 1))
image_right = Input(shape=(200, 200, 1))
vector_left = conv_base
标签: Keras
tensorflow2.0cnn
以下是相关代码:
WARNING:tensorflow:Model was constructed with shape (None, 48, 48, 1) for input Tensor("conv2d_21_input:0", shape=(None, 48, 48, 1), dtype=float32), but it was called on an input with incompatible shape (None, 48, 48, 3).
所以问题就在这里:
output_
从keras.layers导入退出
ImportError回溯(最近一次呼叫最后一次)
在里面
---->1从keras.layers导入退出
导入错误:无法从“keras.layers”导入名称“dropout”请检查tensorflow的版本。如果使用tf>2.0,
使用tf.keras.layers.Dropout作为导入语句
如果没有,请使用Dropout而不是Dropout
我在Python3中使用带有Tensorflow后端的KerasAPI
我正在创建一个多类分类多层感知器模型,其真正目的是创建分类特征嵌入向量作为模型的一部分,以便它们可以应用于其他机器学习问题。下面是model.summary(),我要提取的权重位于第2层(dx\u cat\u embedding):
我使用了dx\u cat\u weights=model.layers[2]。get\u weights()[0]来检索dx类别的权重,并运行len(dx\u cat\u weights)我可以
标签: Keras
resuming-training
我正在使用免费版本的谷歌Colab&由于1的原因,我无法进行一些实验。内存限制:我的数据集太大,无法放入内存或2。训练时间超过12小时(在此之后,我会自动断开连接)。
因此,我想分割大数据集,在上半年进行训练,保存模型,然后在下半年继续训练。我在一个模型上尝试了这种方法,我可以一次对所有的模型进行训练,看看最终的结果是否相同。但事实并非如此——分两批训练的模型表现更差
我的方法:
普通列车:有效分割:
X_序列,X_有效,y_序列,y_有效=序列测试分割(X,y,测试大小=0.1,随机状态=42
我在官方的keras文档中看到了这段代码,并且我已经阅读了在输入模型之前需要调整大小/缩放的图像。你能给个建议吗
from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.layers import Input
# input size
input_tensor = Input(shape=(150, 150, 3))
model = InceptionV3(input_t
在Keras中,我可以创建任何具有线性激活功能的网络层,如下所示(例如,采用完全连接的层):
但是我在PyTorch文档中找不到线性激活函数。ReLU不适合,因为我的示例中存在负值。如何在PyTorch中创建具有线性激活功能的层?如果您查看Keras文档,您将看到'sactivation='linear'对应于a(x)=x功能。这意味着没有非线性
因此,在PyTorch中,您只需定义线性函数,而无需添加任何激活层:
torch.nn.Linear(160, outs)
activation='
我有一个不同形状的数组列表,即
list = [array([1,2,3]), dtype=int16),
array([1,2,3,4,5]), dtype=int16),
array([1,2]), dtype=int16),
array([1,2,3,4,5,6,7,8,9]), dtype=int16)]
我想在cnn中使用这些数据作为输入,其中第一层是conv1。我应该如何转换数据才能工作?我应该在数组中填入
我有一个不平衡的多类数据集,我想使用fit\u generator中的class\u weight参数根据每个类的图像数量为类赋予权重。我正在使用ImageDataGenerator.flow\u from\u directory从目录加载数据集
是否可以从ImageDataGenerator对象直接推断class\u weight参数?刚刚找到了一种实现方法
from collections import Counter
train_datagen = ImageDataGenerator()
在Keras中,如果要添加一个包含10个单元的LSTM层,可以使用model.add(LSTM(10))。我听说数字10指的是隐藏单元的数量和输出单元的数量(Keras代码第863行)
我的问题是,这两件事是一样的吗?输出的维度是否与隐藏单位的数量相同?我读过一些教程(如和),但没有一个明确说明这一点。以获得一个很好的直觉来解释为什么这是有意义的。请记住,LSTM的工作是将序列编码为向量(可能是一种严重的过度简化,但这是我们所需要的)。该向量的大小由隐藏单元指定,输出为:
seq vect
我正在尝试用一个超过250k图像的数据集来训练神经网络。但我的电脑有限,内存为16GB,交换容量为32GB,所以我被卡住了。在我加载所有图像之前,它会给我一个内存错误。所以我想知道是否有一种方法可以利用我所有的图像来训练我的神经网络?例如,我们可以不使用RAM内存来加载numpy阵列中的图像,而是将其加载到可用空间磁盘上吗
编辑1:
def get_array_image(file, path):
return cv2.imread(path+file)
def generator(fe
我正在尝试建立神经网络,并做以下工作:
从keras.layers导入致密,激活
模型.添加(密度(单位=64))
添加(激活('relu'))
模型。添加(密度(单位=10))
添加(激活('softmax'))
model.compile(loss='classifical_crossentropy',
优化器='sgd',
指标=[‘准确度’])
然后,我将x_列和y_列指定为numpy数组:
x\u列车=np.asarray(x\u列车)
y_列车=np.asarray(y_列车)
x
标签: Keras
batch-normalization
我最近想在keras中使用批量归一化来构建一个神经网络。正如最初的论文所提到的,批量归一化在测试和训练时间上表现不同。我查看了文档:
keras.layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001,
center=True, scale=True, beta_initializer='zeros', gamma_initializer='ones',
moving_mean_initializer='zeros',
在keras中,我有一个涉及keras.layers.Conv1D的模型,并尝试绘制它。例如,这里有一个简单的例子:
从keras.models导入顺序模型
从keras.layers导入Conv1D
从keras.utils导入plot\u模型
从IPython.display导入图像,显示
seq_长度=无
M=6
内核大小=3
过滤器=1
模型=顺序()
model.add(
Conv1D(
过滤器=过滤器,
内核大小=内核大小,
input_shape=(seq_length,M),#将
当我初始化并将权重加载到模型时,输出的准确率为67%
model.load\u权重(路径+'results/finetune\u train\u last\u layer.h5')
批次=模型。获取批次(路径,随机播放=假,批次大小=128,类模式=无)
preds=模型预测发生器(批次、批次、nb样本)
匹配项=0
对于猜测,zip中的ans(np.argmax(preds,axis=1),batches.classes):
如果guess==ans:
匹配项+=1
打印(“%s/%s%”(匹
我正在使用keras与GRU一起运行attention layer,以便在python中进行情绪分析,但是,python给了我以下错误消息:
TypeError:(“不是Keras张量:”,Elemwise{add,no_inplace}.0)
我在网站上搜索,但这个问题仍然无法解决。这是我的密码:
os.environ['KERAS\u BACKEND']='theano'
#注意GRU网络
层(层)的类别:
定义初始(自我,**kwargs):
self.init=initializers.
我试图在我的项目中实现注意机制。然而,我的序列有不同的长度,我正在使用bucketing来解决这个问题。因此,我将LSTM输入形状定义为(无、无、特征)。目前,似乎每个使用Keras的注意力实现都需要在输入形状中声明固定数量的时间步。从理论上讲,注意力应该能够很好地处理这些不同的长度,因为不管输入长度如何,它都只是一个softmax。是否有任何方法可以像RNN层一样制作一个“动态注意”,它可以接受(无、无、特征)作为输入形状。谢谢
我试图在Google Colabs上更新keras.json,但它抛出了不支持操作的错误
是否有其他方法可以实现此目的?您正在以只读方式打开文件--将'w'传递到第9行的打开调用。()我得到了没有这样的文件或目录:'.keras/keras.json'错误。你能告诉我你是如何克服这个问题的吗?@talha06-我从来没有遇到过这样的问题。可能尝试重新安装tensorlfow或任何相关软件包。。。
Keras为重量和偏差提供了多种选择。'uniform'使用哪一种
我想是的,但文档中没有证实这一点,我在源代码中遇到了一个死胡同:键“uniform”被用作模块中的全局变量,而且。不过,我认为的答案更好
更简单的解决方案:
从交互提示中
import keras
keras.initializers.normal
# Out[3]: keras.initializers.RandomNormal
keras.initializers.uniform
# Out[4]: keras.initi
灰度图像(宽12px,高12px)在训练和测试中进行处理,如下Keras代码所示
model.add(Convolution2D(32, 3, 3, border_mode='same', input_shape=(1,12,12)))
model.add(Activation("relu"))
model.add(Convolution2D(32, 3, 3))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,
我在keras中使用model.train_on_批次,以便能够以不同方式处理不同批次的输入数据。基本上我不能使用model.fit
但我需要在Tensorboard中存储直方图、激活和权重的图像。有什么方法可以做到这一点吗?您可以通过调用summary.histogram并按如下方式传递每个层的权重来手动完成
with summary_writer.as_default():
for layer in self.model.layers:
for weight in layer.w
标签: Keras
loss-functioncrf
我使用BiLSTM CRF架构为论文中的一系列句子分配一些标签。我们有150篇论文,每个论文包含380个句子,每个句子由一个双数组表示,大小为11,范围为(0,1),类标签的数量为11
input = Input(shape=(None,11))
mask = Masking (mask_value=0)(input)
lstm = Bidirectional(LSTM(50, return_sequences=True))(mask)
lstm = Dropout(0.3)(lstm)
lst
我试着做一个简单的项目,比如“mnist”,但我发现了错误
我尝试使用不同的数据集
试着跟着我以前写的“mnist”
但是这个错误发生了
回溯(最近一次呼叫最后一次):
文件“train..py”,第51行,在
分数=网络。评估(x_测试,y_测试)
文件“/usr/local/lib/python3.6/dist-packages/keras/engine/training.py”,第1102行,在evaluate中
批次大小=批次大小)
文件“/usr/local/lib/python3.6
添加辍学层使val损耗保持低于列车损耗,是否可以在这段时间内保持恒定的泛化间隙?
以下是体系结构:
tf.keras.layers.CuDNNLSTM(1024,input_shape=(9,41),return_sequences=True) ,
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dropout(0.4),
tf.keras.layers.CuDNNLSTM(512, return_sequences=True),
t
标签: Keras
tensorflow-serving
背景:
在GCP上的vision应用程序中,我们使用TF服务。使用TF服务的应用程序是用Go编写的。此应用程序将图像转换为张量,并使用gRPC将其发送到TF服务
问题:
使用Keras图像库,Golang中的预处理逻辑不如Python中的预处理逻辑工作得好(推理的准确性受到影响)。部分原因可能是在培训期间使用了Python库
我们尝试过,
Tensorflow服务提供了一种引入可在服务容器上运行的预处理器的方法。它的功能似乎有限(无法将Keras库打包到模型中)。我们尝试了以下两种选择
有效的是
标签: Keras
loss-functionprecision-recall
是否可以使用sparse\u categorical\u crossentropy损失函数计算精度、召回率、val\u进动和val\u召回率?在这篇文章中,作者建议使用category\u crossentropy,但在我的例子中,我需要使用sparse\u category\u crossentropy
我想检查输入层中预期的默认数据类型是什么,以及如何更改它?如果您有keras模型,请执行以下操作:
打印(model.inputs[0].dtype
您可以在创建模型时传递所需的数据类型。例如:
将tensorflow导入为tf
打印(tf.uuu版本)#2.0.1
x=tf.keras.layers.Input((2,),dtype=tf.float64)
res=tf.keras.layers.density(2,dtype=tf.float64)(x)
model=tf.keras.mo
我正在与Keras合作,并试图创建一个学习速率调度器,该调度器根据处理的批次数而不是历代数进行调度。为此,我将调度代码插入到我的“优化器”的get\u updates方法中。在大多数情况下,我尝试对在给定的训练运行期间保持不变的值使用常规Python变量,对实际变化的参数使用计算图节点
我的两个问题是:
如果将下面的代码放在Keras优化器的get\u updates方法中,它是否应该作为学习率计划程序正常运行
如何将此代码嵌入到类似于LearningRateScheduler的类中,但该类是基
我在我的keras文件的顶部有以下内容,我希望通过此优化可以更快地执行,我的假设是否正确。我在一台8核的机器上运行
NUM_PARALLEL_EXEC_UNITS =8
config = tf.compat.v1.ConfigProto(intra_op_parallelism_threads=NUM_PARALLEL_EXEC_UNITS, inter_op_parallelism_thr
eads=2, allow_soft_placement=True, device_count = {'
我刚开始使用,注意到最大池有两个名称非常相似的层:MaxPool和MaxPooling。我很惊讶,我在谷歌上找不到这两者之间的区别;所以我想知道这两者之间有什么区别。它们是一样的。你可以自己测试
import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import *
# create dummy data
X = np.random.uniform(0,1, (32,5,3)).astype(np.flo
我已经这样设置了我的数据
time 1: [location1, location2] [temp1 1, temp2 1]
time 2: [location1, location2] [temp1 2, temp2 2]
显然,它看起来并不完全像这样,只是为了展示它是如何设置的。当我把它输入到我的LSTM中时,它会说“valueError:用序列设置数组元素”。对设置有什么建议吗?如果有帮助的话,我可以发布更多的代码
下面我们来看看x训练输入的第一个值是什么样子的
[array([arra
标签: Keras
tensorflow2.0generative-adversarial-network
这是我的代码:我无法理解我的代码的哪一部分出错了(发送3维输入而不是批处理),我在pix2pix代码中加入了感知损失。当我使用默认参数调用该类时,会发生错误
类pan():
def __init__(self,img_shape,batch_size,l1,l2,l3,l4,m):
self.img_shape= img_shape
self.batch_size=batch_size
self.l1=l1
self.l2=l2
self.l3=l3
和问题一样。我认为我目前的Pytork/keras没有很好地训练mse/其他自定义丢失功能。有没有一种方法可以显式地输入梯度/海森(对角线)呢。要使其更好地训练?您可以随时访问网络参数并根据需要更改数据。这能回答你的问题吗?或者你在寻找其他的东西吗?你能举一个例子说明你认为pytorch计算梯度是错误的吗?总的来说,这将是相当令人惊讶的。我想如果你有一个自定义的损失函数,它可能是不稳定的,可能浮点错误是复合的,但在这种情况下,我怀疑更精确的梯度估计是解决方案。如果您选择使用它,一个选项是将您的损
标签: Keras
probabilitypredictzero
我在Kaggle数据集上建立了一个预测贷款适用性的模型
该模型的准确率为81.43%。当我试图根据这个模型进行预测时,问题就出现了。这里,我将数据集中的第三行数据作为数组传递给模型,与其他行一样,概率为零
model = load_model('model.h5')
X = np.array([[0, 1, 0, 0, 1, 3000, 0, 66, 360, 1, 0]], dtype=np.float32)
scaler = StandardScaler()
X = scaler.fit_t
我从中了解到,可以通过以下方式将整个层设置为不可训练:
weights_and_bias = [weight_matrix, bias_vector]
frozen_layer = Dense(32, weights=weights_and_bias, trainable=False)
但这将使权重和偏差都无法训练。我想让其中一个可以训练,但另一个不能训练
有什么简单的方法可以做到这一点吗?我认为这是不可能的。但是,将其分为两个层应该很容易:使用一个没有偏差的密集层(densite(Use_b
标签: Keras
confusion-matrix
我已将以下模型与我的7类数据相匹配,我想为我的模型创建一个混淆矩阵:
history1 = model1.fit(data_generator.flow(train_x, to_categorical(train_y),batch_size=BATCH_SIZE),
steps_per_epoch=len(train_x) / BATCH_SIZE,
validation_data=data_generator.f
我想用Keras调谐器进行超参数优化。由于某些原因,我需要重新缩放标签。我希望此重缩放是调查的超参数之一(例如,我如何进行重缩放的确切方式)。我想不出用Keras Tuner做这件事的方法。例如,我想做这样的事情:
from tensorflow import keras
import kerastuner
# create grid for BayesianSearch
pools = dict()
pools["units"] = [32, 64]
pools[&quo
我想实现一个暹罗RNN网络,该网络的两个分支共享,在每个时间步,RNN都将CNN输出作为输入,如下所示:
X1 X2 X3 X4 Y1 Y2 Y3 Y4
| | | | | | | |
CNN CNN CNN CNN CNN CNN CNN CNN
| | | |
我有2个GPU GTX1080,安装了Keras v2。我同时在gpu0和gpu1上运行2个培训过程。但是,我得到了资源抽风机
少了什么
python multi-gpu-process.py--gpu_id=1(正常)
python multi-gpu-process.py--gpu_id=0(请提供ResourceExhaustedError.Help。)
#文件:multi-gpu-process.py(两个培训过程在不同的gpu上工作)
将numpy作为np导入
导入操作系统
def g
标签: Keras
sequencelstmrnn
堆叠RNN时,必须在Keras中将return_sequences参数设置为True
比如在Keras
lstm1 = LSTM(1, return_sequences=True)(inputs1)
lstm2 = LSTM(1)(lstm1)
为每个堆叠的RNN层保留输入空间的维度有些直观,但是,我并不完全相信
有人能(从数学上)解释原因吗
谢谢。重复层的输入形状为:
(序列数、时间步长、输入功能)
对于重复出现的层,这是绝对必要的,因为只有在存在时间步长的情况下才能出现任何重复出现
现
标签: Keras
keras-layerconvolutional-neural-network
我在初始基础上使用VGG16网络构建了一个顺序模型,例如:
从keras.applications导入VGG16
conv_base=VGG16(weights='imagenet',
#不包括顶部完全连接的致密层
include_top=False,
输入_形状=(150,150,3))
从keras导入模型
从keras导入图层
model=models.Sequential()
模型添加(conv_base)
model.add(layers.flatte())
model.add(lay
我正在尝试创建一个有状态的自动编码器模型。目标是使自动编码器对每个时间序列都有状态。数据由10个时间序列组成,每个时间序列的长度为567
timeseries#1: 451, 318, 404, 199, 225, 158, 357, 298, 339, 155, 135, 239, 306, ....
timeseries#2: 304, 274, 150, 143, 391, 357, 278, 557, 98, 106, 305, 288, 325, ....
...
timeseries
我正在尝试使用coreml将我的keras模型转换为mlmodel。然而,这意味着coremltools模块没有“convert”属性
AttributeError: 'module' object has no attribute 'convert'
我的coremltools、keras、tensorflow(tensorflow gpu)模块都是最新的。
我也在使用python 2.7.10
我用过windows和mac,但都不起作用。但是,caffe.convert正在使用caffe模
标签: Keras
image-segmentationloss-functionlosssemantic-segmentation
我正在为(某种)语义分割任务编写一个自定义损失函数,在这个任务中,我计算目标(2-d数组)和预测的二进制交叉熵(使用keras后端)。总损失是4个不同损失函数的总和
在其中两个函数中,我需要制作一个定制的目标数组,并用这些目标和预测计算二进制交叉熵。在这里,我想忽略而不是计算目标数组中标签为1(前景)的损失
在pytorch的nll_loss()中有一个参数“ignore_index”,它与我尝试做的类似
我正在努力实现以下目标:
def binary_crossentropy(y_true,
我在语音数据中对语音和非语音进行分类,每个语音数据有3630371个数据点和39个特征。i、 语音数据的e形为(3630371,39)。如何将其重塑为LSTM输入。3D输入形状必须是什么,或者“样本”、“时间步长”和“特征”的值是什么
以下是正确的吗
data.reshape(3630371, 1, 39)
LSTM(32, input_shape = (1, 39))
请帮忙!我没有线索。LSTM输入:(样本、时间步、功能的数量)
在上面的代码中,您实际上只有1个timestep,它没有利用
我正在使用Tensorflow 1.15.0和keras 2.3.1。我正在尝试计算每个历元的六类分类问题的精度和召回率,用于训练数据和训练期间的验证数据。
我可以使用分类报告,但它只有在培训完成后才能工作
from sklearn.metrics import classification_report
y_pred = final.predict(X_test)
y_indx = np.argmax(y_test_new, axis = 1)
pred_indx = np.argmax(y_
我似乎有一个特定的代码,因为我在网上找不到我想要的,所以我的问题是:
我已经编写了一个NN,它接受一个特定长度的数组,并且应该给我一个单值作为输出:
model = tf.keras.Sequential()
model.add(layers.Embedding(input_dim=int(input_len_array), output_dim=8 * int(input_len_array)))
model.add(layers.GRU(32 * int(input
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 60 页