我应该在什么时候考虑使用pre-rain-model word2vec模型的权重?
假设我的语料库很大 - 拥有数万个独特的单词.我可以使用它直接构建Word2Vec模型(下面的代码中的方法1),也可以初始化具有预训练模型权重的新Word2Vec模型,并用我自己的语料库(方法#2)对其进行微调.方法2值得考虑吗?如果是这样,我何时应该考虑一个预训练的模型? 是否有经验法则? # Approach #1 from gensim.models import Word2Vec model = Word2Vec(my_corpus, vector_size=300, min_count=1) # Approach #2 model = Word2Vec(vector_size=300, min_count=1) model.build_vocab(my_corpus) model.intersect_word2vec_format("GoogleNews-vectors-negative300.bin", binary=True, lockf=1.0) model.tra
4 2023-12-11
编程技术问答社区
从预训练的模型进行微调后,TensorFlow模型中的输出节点名称丢失了
I follow the tutorial at https://tensorflow-object-detection-api- tutorial.readthedocs.io 要微调一个预训练的模型,以检测图像中的新对象.预训练的模型为 ssd_inception_v2_coco . 我在数千个步骤中成功地培训并评估了该模型,但从26损失到1.但是,我未能使用此代码创建冷冻模型: #this code runs in model dir import tensorflow as tf #make .pb file from model at step 1000 saver = tf.train.import_meta_graph( './model.ckpt-1000.meta', clear_devices=True) graph = tf.get_default_graph() input_graph_def = graph.as_graph_de
10 2023-11-02
编程技术问答社区
如何微调现有的Tensorflow对象检测模型以识别更多的类?
感谢Google提供我想知道如何通过在模型中添加新类,从上述存储库中重新训练预训练的模型. 例如,受过训练的可可数据集模型有90个类,我想在现有的一个类中添加1或2个类,并获得一个92个类对象检测模型. 那么,还有其他方法可以重新训练模型并获得92个类? 解决方案 问题:我们如何在我已经训练的网络中添加更多类? 具体来说,我们希望将所有网络保留在新类的输出之外.这意味着,对于Resnet之类的东西,我们希望保留除最后一层以外的所有内容,并以某种方式扩展了最后一层以拥有我们的新类. 答案:将现有的最后一层与您训练的新层相结合 具体来说,我们将用完全连接的图层替换最后一层,该图层足以适合您的新类和旧类.用随机的权重初始化它,然后在您的课程中训练它,而其他一些则将其训练.训练后,将原始最后一个完全连接层的原始权重复制到新训练的完全连接层中. 例如,上一层是1024x90矩阵,而新的最后一层是1024x92矩阵,请将1024x90复制到新的1024x92中的
如何将重新训练的模型转换为tflite格式?
我已经在Mobilenet上重新训练了一个图像分类器模型,我有这些文件. 此外,我用TOCO压缩了重建模型以将模型转换为.lite格式,但是我需要以.tflite格式将其转换为.lite格式.无论如何,我可以从现有文件中获得TFLITE格式吗? 解决方案 这是一个简单的python脚本 import tensorflow as tf graph_def_file = "output_graph.pb" ##Your frozen graph input_arrays = ["input"] ##Input Node output_arrays = ["final_result"] ##Output Node converter = tf.lite.TFLiteConverter.from_frozen_graph(graph_def_file, input_arrays, output_arrays) tflite_model = converter.
18 2023-10-17
编程技术问答社区
在没有高级API的情况下重新训练CNN
摘要:我试图在不使用高级API的情况下对MNIST进行简单的CNN.我已经通过重新培训整个网络成功了,但是我目前的目标是仅重新培训最后一两个完全连接的层. 到目前为止工作: 说我有一个具有以下结构的CNN 卷积层 relu 合并层 卷积层 relu 合并层 完全连接的图层 relu 辍学层 完全连接到10个输出类 我的目标是重新训练最后一个完全连接的层或最后两个完全连接的层. 卷积层的示例: W_conv1 = tf.get_variable("W", [5, 5, 1, 32], initializer=tf.truncated_normal_initializer(stddev=np.sqrt(2.0 / 784))) b_conv1 = tf.get_variable("b", initializer=tf.constant(0.1, shape=[32])) z = tf.nn.conv2d(x_image, W_con
12 2023-10-16
编程技术问答社区
用于视频分类的转移学习
如何使用预训练的模型来培训视频分类模型?我的数据集形状是(4000,10,150,150,1),我尝试用CORV2D定时分配对人类行动识别进行分类. 我可以在不转移学习的情况下进行训练,但准确性很差. 我尝试的是: from keras.applications import VGG16 conv_base = VGG16(weights='imagenet', include_top=False, input_shape=(150, 150, 3)) model = models.Sequential() model.add(conv_base) model.add(TimeDistributed(Conv2D(96, (3, 3), padding='same', input_shape=x_train.shape[1:]))) model.add(Time
预训练的Tensorflow模型RGB->RGBY通道扩展
我正在研究这个想法是使用预训练的网络,例如VGG19并将频道数量从默认3扩展到4.类似的东西: (我的appologies,我不允许在10个声誉之前直接添加图像,请按"运行代码段"按钮可视化): 图片:带有RGB的VGG模型扩展到RGBY y通道应为现有验证通道的副本.然后,可以利用预验证的重量. 有人知道如何实现这种验证网络的扩展吗? * 拼贴的作者 - 来自Kaggle的Allunia,"蛋白质Atlas-探索和基线"内核. 解决方案 使用layer.get_weights()和layer.set_weights() keras api . 为4层VGG创建模板结构(Set Input shape=(width, height, 4)).然后将重量从3通道RGB模型加载到4通道中,为RGBB. 以
6 2023-10-16
编程技术问答社区
在哪里可以找到张量的预估计型号(列表或下载链接)
我开始与Intel Movidius神经计算棒一起工作. 为了开始工作,就我而言,有必要下载验证的模型. 在教程中,他们指的是但是,没有一个列表显示所有可下载的模型. 如果最新版本的网络(inpection_v4)尚不清楚,我无法下载相应的.tar.gz文件. 有人知道可以使用预告片型号的.tar.gz文件的更新列表的方法吗? 谢谢 解决方案 以下两个链接可能会有所帮助 /p> 其他解决方案 其他解决方案 考虑到大多数已发布的链接过时,我建议您查看TensorFlow Hub( https:/https://www.tensorflow.org/hub )用于最新的预训练模型.
26 2023-10-16
编程技术问答社区
Tensorflow加载预训练的模型使用不同的优化器
我想加载一个预训练的模型(通过adadeltaOptimizer优化),并继续使用SGD(gradientDescentOptimizer)培训.这些模型被保存并加载,并加载了保存模型: import tensorlayer as tl tl.files.save_npz(network.all_params, name=model_dir + "model-%d.npz" % global_step) 负载模型: load_params = tl.files.load_npz(path=resume_dir + '/', name=model_name) tl.files.assign_params(sess, load_params, network) 如果我继续与Adadelta进行训练,则训练损失(横熵)看起来正常(以接近的型号为单位,以载荷模型为单位).但是,如果我将优化器更改为SGD,则训练损失将与新初始化的模型一样大.
26 2023-10-16
编程技术问答社区
属性错误:';节点#39;对象没有属性';输出掩码';
我使用仔细预测的Model VGG16.问题是,在配置TensorFlow以使用GPU后,我会发现使用CPU之前没有的错误. 错误是以下一个: Traceback (most recent call last): File "/home/guillaume/Documents/Allianz/ConstatOrNotConstatv3/train_network.py", line 109, in model = LeNet.build(width=100, height=100, depth=3, classes=5) File "/home/guillaume/Documents/Allianz/ConstatOrNotConstatv3/lenet.py", line 39, in build output = model(pretrainedOutput) File "/usr/local/lib/
24 2023-10-16
编程技术问答社区
有没有可能让一个可训练的变量变得不可训练?
我在范围中创建了A 可训练变量.后来,我输入了相同的范围,将范围设置为reuse_variables,然后使用get_variable检索相同的变量.但是,我无法将变量的可训练属性设置为False.我的get_variable线就像: weight_var = tf.get_variable('weights', trainable = False) 但是变量'weights'仍在tf.trainable_variables的输出中. 我可以使用get_variable>? 将共享变量的trainable标志设置为False 我要这样做的原因是,我正在尝试重复使用模型中VGG Net预先训练的低级过滤器,并且我想像以前一样构建图形,检索权重变量并分配VGG过滤值对重量变量,然后在以下训练步骤中保持固定. 解决方案 查看文档和代码后,我是 能够找到一种从TRAINABLE_VARIABLES中删除变量的方法. 这是发生的事情: 第一次调用tf.get
14 2023-10-16
编程技术问答社区
如何通过scikit-learn保存一个训练好的模型?
我正在尝试重新创建训练有素的模型的预测,但我不知道如何保存模型. 例如,我想保存训练有素的高斯处理回归模型,并在训练模型后重新创建预测. 我用来训练型号的软件包是Scikit-Learn. kernel = DotProduct() + WhiteKernel() gpr = GaussianProcessRegressor(kernel=kernel,random_state=0) gpr.fit(X,y) 解决方案 您可以使用: 1. pickle from sklearn import svm from sklearn import datasets iris = datasets.load_iris() X, y = iris.data, iris.target clf = svm.SVC() clf.fit(X, y) ########################## # SAVE-LOAD using pickle # #########
50 2023-08-21
编程技术问答社区
预训练变压器模型的配置更改
我正在尝试为改革者变压器实施分类负责人.分类头正常工作,但是当我尝试更改config参数之一 - config.axial_pos_shape,即模型的序列长度参数,它会引发错误; 大小不匹配的改革器.embeddings.position_embeddings.weights.0:从检查点复制一个用形状torch.size([512,1,64])的参数,当前模型中的形状为torch.size([64,1 1) ,64]). 改革仪的尺寸不匹配.embeddings.position_embeddings.Weights.1:从检查点复制一个用形状torch. ). 配置: { "architectures": [ "ReformerForSequenceClassification" ], "attention_head_size": 64, "attention_probs_dropout_prob": 0.1, "attn_layers
8 2023-07-25
编程技术问答社区
如何删除 Huggingface'transformers BERT 预训练模型中的图层?
我目前正在尝试使用验证的BertModel进行填充. 如何在微调之前从模型中删除一些层? 我尝试了这样的事情: def deleteEncodingLayers(model, num_layers_to_keep): # must pass in the full bert model oldModuleList = model.bert.encoder.layer newModuleList = nn.ModuleList() # Now iterate over all layers, only keepign only the relevant layers. for i in range(0, len(num_layers_to_keep)): newModuleList.append(oldModuleList[i]) # create a copy of the model, modify it wit
TF Objection Detection Zoo 模型没有可训练变量?
我试图使用meta+ckpt文件进一步训练,并为研究目的提取一些特定张量的权重.我看到这些模型没有任何可训练的变量. vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES) print(vars) 上面的摘要给出了[]列表.我还尝试使用以下内容. vars = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES) print(vars) 我再次获得[]列表. 这怎么可能?该模型是否从变量中删除?还是tf.Variable(trainable=False)?我可以在哪里获得具有有效训练变量的Meta+CKPT文件.我专门查看了SSD+Mobilnet模型 更新: 以下是我用于还原的代码段 def _importer(self): sess = tf.InteractiveSession() with sess.as_default
如何将 PyTorch nn.Module 转换为 HuggingFace 预训练模型对象?
在pytorch中给出了一个简单的神经网,例如: import torch.nn as nn net = nn.Sequential( nn.Linear(3, 4), nn.Sigmoid(), nn.Linear(4, 1), nn.Sigmoid() ).to(device) 如何将其转换为huggingface 预定型Momodel 对象? 目标是将pytorch nn.Module对象从nn.Sequential转换为huggingface PreTrainedModel对象,然后运行类似: import torch.nn as nn from transformers.modeling_utils import PreTrainedModel net = nn.Sequential( nn.Linear(3, 4), nn.Sigmoid(), nn.L
在PyTorch中访问预先训练好的模型中的一个特定层
我想从 timesformer "> timesformer 模型中提取功能.最后两层. import torch from timesformer.models.vit import TimeSformer model = TimeSformer(img_size=224, num_classes=400, num_frames=8, attention_type='divided_space_time', pretrained_model='/path/to/pretrained/model.pyth') 模型的打印如下: TimeSformer( (model): VisionTransformer( (dropout): Dropout(p=0.0, inplace=False) (patch_embed): PatchEmbed( (proj): Conv2d(3, 768, kernel_size=(16, 16), stride=(16, 16)
28 2023-07-16
编程技术问答社区
有什么办法能让我把PyTorch中的预训练模型下载到特定的路径中吗?
我指的是可以在此处找到的模型: https:https:https:https:https:///pytorch.org/docs/stable/torchvision/models.html#torchvision-models 解决方案 AS, @dennlinger 他的答案: ,当您加载预训练的模型时,内部被称为. 更具体地说,每次加载预训练的模型时,都会称呼:torch.utils.model_zoo.load_url().同一文档,提到: model_dir的默认值是$TORCH_HOME/models $TORCH_HOME默认为~/.torch. 可以用$TORCH_HOME覆盖默认目录 环境变量. 这可以如下完成: import torch import torchvision import os # Suppose you are trying to load pre-trained resnet model in direc
18 2023-07-16
编程技术问答社区
使用训练器API预训练BERT模型时出现ValueError
我正在尝试通过在transformers库中使用Trainer API来微调/预训练现有的BERT模型,以进行情感分析.我的培训数据集看起来像这样: Text Sentiment This was good place 1 This was bad place 0 我的目标是能够将情感归类为正/负面.这是我的代码: from datasets import load_dataset from datasets import load_dataset_builder import datasets import transformers from transformers import TrainingArguments from transformers import Trainer dataset = load_dataset('csv', d
为什么vgg.prepare()方法会创建9个给定图像的副本?
当我将vgg.prepare()应用于以下图像时,我会得到此结果:我使用此代码线: Image.fromarray(np.uint8(vgg.prepare(pep).reshape(224,224,3))) 并获得一个给定图像的9份副本的图像: 解决方案 我终于得到了你所做的... 唯一的错误是.reshape. 因为图像是 transphate 而不是 reshate ,所以您必须重新转移才能恢复原始图像. pep = pep.transpose((1, 2, 0)) # transpose pep += [103.939, 116.779, 123.68] # un-normalize pep = pep.astype(np.uint8) # revert dtype pep = np.flip(pep, axis=2) # BGR -> RGB PIL_image = Image.fromarray(pep) # finally got t
8 2023-07-07
编程技术问答社区