如何向LSTM提供Bert嵌入信息
我正在研究用于文本分类问题的BERT + MLP模型.本质上,我试图用基本LSTM模型替换MLP模型. 是否可以使用嵌入来创建LSTM?或者,最好创建具有​​嵌入式层的LSTM? 更具体地说,我很难尝试创建嵌入式矩阵,因此我可以使用bert嵌入来创建嵌入层. def get_bert_embeddings(dataset='gap_corrected_train', dataset_path=TRAIN_PATH, bert_path=BERT_UNCASED_LARGE_PATH, bert_layers=BERT_LAYERS): """Get BERT embeddings for all files in dataset_path and specified BERT layers and write them
8 2024-03-30
编程技术问答社区
设置Keras模型的可训练性与使每层可训练性之间有什么区别?
i具有一个由一些密集层组成的喀拉斯顺序模型.我将整个模型的可训练属性设置为false.但是我看到,各个层仍然具有可训练的属性设置为真.我是否需要单独将图层的可训练属性设置为false?那么将可训练属性设置为整个模型的false的含义是什么? 解决方案 要能够回答这个问题,您需要查看Keras的源代码,这可能会感到惊讶,因为您会意识到: Sequential类 Model类 Network类 Layer class! 正如我所说,这可能有些令人惊讶的是,Keras模型是从Keras层得出的.但是,如果您进一步思考,您会发现它是合理的,因为它们具有许多共同的功能(例如,都有一些输入,对它们进行一些计算,产生一些输出并更新其内部权重/参数).他们的常见属性之一是trainable属性.现在,当您将模型的属性设置为False时,它将 skip 重量更新步骤.换句话说,它不会检查其基础层的trainable属性;相反,首先,检查自己的 trainable属性(更准确地说是Net
12 2024-03-27
编程技术问答社区
如何实现Keras的KL-发散正则化?
这是这个问题的后续问题 KERAS后端均值函数:"'float'对象没有属性'dtype'? 我正在尝试为Keras做一个新的正规化程序.这是我的代码 import keras from keras import initializers from keras.models import Model, Sequential from keras.layers import Input, Dense, Activation from keras import regularizers from keras import optimizers from keras import backend as K kullback_leibler_divergence = keras.losses.kullback_leibler_divergence def kl_divergence_regularizer(inputs): means = K.mean((inpu
14 2024-03-20
编程技术问答社区
如何查看Keras中某层输出的张量值
我有一个SEQ2SEQ模型.我有兴趣打印出迭代的编码器输出的矩阵值. 例如 我想看到10 dimension (?,20) per epoch的矩阵. 我已经访问了多个链接,如在这里矩阵. 使用此代码,如AB的链接中所述: import keras.backend as K k_value = K.print_tensor(encoded) print(k_value) 我得到了: Tensor("Print:0", shape=(?, 20), dtype=float32) 是否有任何直接显示keras中每一层的张量值的直接方法? 更新1 通过尝试此代码:K_value = K.eval(encoded)它引发了此错误: Traceback (most recent call last): File "/home/sgnbx/anaconda3/envs/py3/lib/python3.5/site-packages/tensorfl
34 2024-03-20
编程技术问答社区
指定一个seq2seq自动编码器。RepeatVector是做什么的?以及批量学习对预测输出的影响是什么?
我正在构建基本的SEQ2SEQ自动编码器,但是我不确定我是否正确地进行操作. model = Sequential() # Encoder model.add(LSTM(32, activation='relu', input_shape =(timesteps, n_features ), return_sequences=True)) model.add(LSTM(16, activation='relu', return_sequences=False)) model.add(RepeatVector(timesteps)) # Decoder model.add(LSTM(16, activation='relu', return_sequences=True)) model.add(LSTM(32, activation='relu', return_sequences=True)) model.add(TimeDistributed(Dense(n_fea
10 2024-03-20
编程技术问答社区
Model.fit过程中Keras的维度不匹配
我使用keras中密集的神经网络组合了一个VAE.在model.fit期间,我会得到一个尺寸不匹配,但不确定是什么将代码丢弃.以下是我的代码 的样子 from keras.layers import Lambda, Input, Dense from keras.models import Model from keras.datasets import mnist from keras.losses import mse, binary_crossentropy from keras.utils import plot_model from keras import backend as K import keras import numpy as np import matplotlib.pyplot as plt import argparse import os (x_train, y_train), (x_test, y_test) = mnist.load_data(
6 2024-03-20
编程技术问答社区
从训练好的自动编码器中提取编码器和解码器
我想在 https:https:https:https:https://blog.keras.io/building-autoencoders-in-keras.html 并使用Fashion-Mnist数据进行测试: 加载图像,进行可能需要几个小时或几天的拟合,然后使用回调来保存最佳的自动编码器型号.该过程可以是在以下一部分之前的几周. 使用此最佳模型(由文件名手动选择)和绘图原始图像,由自动编码器的编码器和使用自动编码器的解码器进行预测的编码表示. 我有问题(请参阅第二步),从训练有素和保存的自动编码器中提取编码器和解码器. 对于,第一步我的网络非常简单,如下所示: input_img = Input(shape=(784,)) # encoded representation encoded = Dense(encoding_dim, activation='relu')(input_img) # lossy reconstruction decoded = D
22 2024-03-20
编程技术问答社区
我如何用Keras创建3D输入/3D输出卷积模型?
我有点问题,我无法解决. 我想实现具有完全连接的MLP的CNN模型,该模型具有2589蛋白的蛋白质数据库.每种蛋白质有1287行和69列作为输入,以及1287行,8列作为输出.实际上,有1287x1的输出,但是我使用了一个热编码来用于类标签以在模型中使用Crossentropy损失. 我也想要 如果我们将其视为图像我有一个3D矩阵** x_train =(2589,1287,69)用于输入**和 y_train =(2589,1287,8)输出,我的意思是输出也是矩阵. 在我的Keras代码下方: model = Sequential() model.add(Conv2D(64, kernel_size=3, activation="relu", input_shape=(X_train.shape[1],X_train.shape[2]))) model.add(Conv2D(32, kernel_size=3, activation="relu")) m
16 2024-01-08
编程技术问答社区
如何从Keras嵌入层获取词向量
我目前正在使用具有嵌入式层作为第一层的KERAS模型.为了可视化彼此之间单词的关系和相似性,我需要一个函数,该函数返回词汇中每个元素的单词和向量的映射(例如'love' - [0.21,0.56,...,0.65,0.10] ). 有什么方法可以做吗? 解决方案 您可以使用嵌入层的get_weights()方法获取单词嵌入(即,本质上是嵌入层的权重为嵌入向量): # if you have access to the embedding layer explicitly embeddings = emebdding_layer.get_weights()[0] # or access the embedding layer through the constructed model # first `0` refers to the position of embedding layer in the `model` embeddings = model.laye
16 2023-12-11
编程技术问答社区
在CNN(Keras)中选择步长和过滤器的数量
我正在使用KERAS构建用于信号分类的CNN模型. KERAS中最佳参数调整和选择数量和数字过滤器的最佳方法是什么? 解决方案 欢迎来到深度学习的主要问题.没有适合所有问题的有效单个解决方案.但是,有一些模式,例如从早期的几个过滤器开始,并增加过滤器计数,同时减少尺寸. 对于您来说,最好的是开始阅读诸如Inception,VGG,Resnet等的现有体系结构,以了解为什么以及如何实施网络.然后,通过关注/发明自己的网络,您可以尝试取得更好的结果.
18 2023-10-20
编程技术问答社区
Theano/Keras:将张量的K-first值设置为一个值
我有一个自定义的keras层,我将theano用作后端,我想做以下操作: 假设我们的张量具有形状(n,).我想将k的第一个值设置为固定值x(3或其他...).我怎么做?我认为我必须使用argsort,但我不知道如何使用theano实施. 例如,在简单的FF层中,如何将张量a的第一个n值设置为值x? def call(self, x, mask=None): a = K.dot(x, self.W) if self.bias: a += self.b return a 例如,使用numpy i可以将a的10个第一个值设置为1: a[a.argsort()
20 2023-10-20
编程技术问答社区
对keras中的张量变量调用eval()时出错
我正在使用keras并使用图层输出进行某些修改.之前,使用输出(张量变量),我将其转换为numpy阵列,从而在其上调用eval(),如下所示: : def convert_output(orig_output): conv_output = invoke_modifications(orig_output.eval(), 8) 代码失败,以下错误: File "", line 1, in orig_output.eval() File "C:\ENV\p34\lib\site-packages\theano-0.9.0.dev4-py3.4.egg\theano\gof\graph.py", line 516, in eval self._fn_cache[inputs] = theano.function(inputs, self) File "C:\ENV
16 2023-10-20
编程技术问答社区
keras LSTM模型中的维度不匹配
我想使用带有keras的LSTM神经网络来预测时间序列组,并且在使模型匹配我想要的内容方面遇到麻烦.我的数据的尺寸是: 输入张量:(data length, number of series to train, time steps to look back) 输出张量:(data length, number of series to forecast, time steps to look ahead) 注意:我想保持尺寸完全这样,不 换位. 复制问题的虚拟数据代码是: import numpy as np from keras.models import Sequential from keras.layers import Dense, TimeDistributed, LSTM epoch_number = 100 batch_size = 20 input_dim = 4 output_dim = 3 look_back = 24 look_a
22 2023-10-20
编程技术问答社区
致密层与卷积2D层的Keras融合
我想制作一个自定义层,该层应该将密集层的输出与卷积2D层​​融合. 这个想法来自本文是网络: 融合层试图将卷积2D张量(256x28x28)与密度张量(256)融合.这是它的方程式: y_global => Dense layer output with shape 256 y_mid => Convolution2D layer output with shape 256x28x28 这是有关融合过程的论文的描述: 我最终制作了一个新的自定义层,如下所示: class FusionLayer(Layer): def __init__(self, output_dim, **kwargs): self.output_dim = output_dim super(FusionLayer, self).__init__(**kwargs) def build(self, input_shape):
38 2023-10-20
编程技术问答社区
Keras详细的培训进度条在每个批次问题上写新行
在Keras运行致密的前馈神经网. 有两个输出的class_weights,sample_weights用于第三个输出.在某些原因之前,它为计算的每个批次打印了进度的详细显示,而不是更新与应该... 这曾经发生过吗? 如何修复? 来自外壳: 42336/747322 [====>.........................] - ETA: 79s - loss: 20.7154 - x1_loss: 9.5913 - x2_loss: 10.0536 - x3_loss: 1.0705 - x1_acc: 0.6930 - x2_acc: 0.4433 - x3_acc: 0.6821 143360/747322 [====>.........................] - ETA: 78s - loss: 20.7387 - x1_loss: 9.6131 - x2_loss: 10.0555 - x3_loss: 1.0702 - x1_acc: 0.6930 -
72 2023-10-20
编程技术问答社区
带有keras和tensorflow_addons层的tensorflow模型没有被加载
我已经训练了一个型号的型号,并从tensorflow_addons训练了重量_normalization层.这是我训练和保存的型号,以TensorFlow文件格式: import tensorflow as tf import tensorflow.keras as tk import tensorflow_addons as tfa model = tf.keras.Sequential([ tf.keras.layers.Input((X_train.shape[1]-1,)), tf.keras.layers.BatchNormalization(), tf.keras.layers.Dropout(0.2), tfa.layers.WeightNormalization(tf.keras.layers.Dense(2048, activation="relu")), tf.keras.layers.BatchNormalizatio
28 2023-10-19
编程技术问答社区
输入密度与该层无效的形状不相容
我有一个简单的层用于我的模型 states = Input(shape=(len(inputFinal),)) 这应该生成一个(328,无),但不知道为什么当我检查时倒置 model.inputs [] ,当我尝试将数据传递给模型时,该图层不正确 value.shape (328,) model.predict(value) Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape to have value 328 but received input with shape [None, 1] 我找不到问题,有什么想法吗? 解决方案 指定输入形状时,您只需要指定功能数量即可. Keras不想知道样品数量,因为它可以接受任何
28 2023-10-19
编程技术问答社区
Keras后端均值函数:�� '浮动#39;对象没有属性';D类型#39;��?
我正在尝试为使用keras的网络引入一个新的内核.但是,它给了我错误: " float'对象没有属性" dtype" 我该如何修复? 我在这里找到了代码: keras(tensorflow backend) /p> 这是我的代码: from keras import backend as K kullback_leibler_divergence = keras.losses.kullback_leibler_divergence def kl_divergence_regularizer(inputs): means = K.mean((inputs)) return 0.5 *(0.01 * (kullback_leibler_divergence(0.05, means) + kullback_leibler_divergence(1 - 0.05, 1 - mea
24 2023-10-19
编程技术问答社区
加载模型 引发ValueError 未知损失函数
这是我尝试保存和加载模型后的代码: 在 model.save('path_to_my_model.h5') del model model = tf.keras.models.load_model('path_to_my_model.h5', custom_objects={'Wraparound2D': Wraparound2D}) import tensorflow.keras.backend as K inp = model.input # input placeholder outputs = [layer.output for layer in model.layers] # all layer outputs functor = K.function(inp, outputs) # evaluation function layer_ou
26 2023-10-19
编程技术问答社区
无法理解tensorflow keras层(tf.keras.layer.Layer)中方法`build`的行为。
Tensorflow Keras中的层具有一种方法build,该方法用于将权重创建推迟到您看到输入将要的时间. a layer的构建方法 我有几个问题,我找不到: 的答案 如果将图层实例分配为另一层的属性,则外层将开始跟踪内层的重量. 跟踪一层的重量是什么意思? 相同的链接也提到 我们建议在 init 方法中创建这样的子层(由于子层通常会采用构建方法,因此在构建外层时将构建它们). 这是否意味着在运行子类(self)的build方法时,将通过self的所有属性进行迭代,并且发现从(实例)tf.keras.layer.Layer的实例中分类的emberation他们的build方法自动运行? 我可以运行此代码: class Net(tf.keras.Model): """A simple linear model.""" def __init__(self): super(Net, self).__init__()
30 2023-10-19
编程技术问答社区