问题标签 [siamese-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 keras 进行文档相似性的 Siamese LSTM 给出输入错误
我编写了这段代码来使用 Siamese 方法来计算两个文档的相似度。我想使用矢量化方法嵌入两个单独文档的矢量化层(嵌入是使用 Google 新闻数据集执行的),然后将其提供给 LSTM,LSTM 的输出进入余弦函数以测量两个文档的相似性。
如果有人可以帮助我解决这个问题以及 LSTM 输入功能,我会收到以下错误吗?
python - 如何在连体网络中使用两个相同网络的加载权重进行预测?
我如何在连体网络中使用两个相同网络的保存权重 - > 相似性网络(右/连体)和特征生成器(左)。
我遵循并实现了这个图像相似性示例,并将 siames 模型中两个相同网络的权重保存为simlarity_model.h5和feature_generator_model.h5。
如何使用这两个保存的权重进行预测?
相似模型 =>
特征生成器模型 =>
保存的重量 =>
python-3.x - 带有自定义数据生成器的连体网络的输入问题
大家好,提前感谢您的帮助。
我正在尝试为我的图像识别项目实现一个连体网络(第一次),但我无法克服这个错误:
我认为我的数据生成器是问题所在,但我不知道如何解决它。
以下是一些信息:
如果您需要任何其他要求,我会提供。
image - 确定图像相似度的模型的泛化问题(连体神经网络)
我已经训练了一个连体神经网络来预测 5 个类的图像相似度(1=不相等,...,5=完全相同)。相似度由余弦相似度测量,其值从 -1 到 1。因此,为了训练模型,我将原始比例转换为这些值,例如“不等于”类 1 到 -1,类 2 到 -0.5 , ... 和“完全一样”的 5 到 1 级。关于预测的结果可以看出,模型的预测具有递增的中位数和递增的相似度(从 1 到 5)。但是比例(-1 到 1)没有被完全使用,因为结果彼此太接近了。另一方面,训练数据的分离非常好,所以我认为这个问题可以解决,但是现在模型之前没有见过的新图像对的泛化效果还不是很好。我认为这是过度拟合的结果,但我不知道我还能做些什么来解决这个问题。这就是为什么我问你是否有人知道我可以做些什么来改善班级的分离。以下是我的训练模型的配置:
- 训练集是平衡的(~500 Image Pairs / Class)
- 连体神经网络的 CNN 是针对特定图像的训练 ResNet34
- 距离函数:余弦相似度
- 优化器:RMSPROP(lr=0.00001)
- 时代:500
- 批量:32
- 损失函数:SmoothL1Loss
- 避免过拟合:resize(105,105)、randomRotation([-30,30])、ColorJitter(brightness=[0.7,1])
- 架构:从 ResNet34 中剪下最后一层并添加一个线性层(见下文)
- 训练方法:
我目前的连体神经网络:
我试过了:
- 不同的优化器(亚当,夏娃)
- 不同的学习率 (0.00025,0.0001,0.000075,0.000005, 0.0000025, 0.000001)
- 而不是 CosineSimilarity (范围 -1:1) 我试过余弦距离 (范围 0:2)
- 不同的时代(200-3000)
- 不同的批量大小 (32,64)
- 不同的损失函数(L1Loss、L2Loss、SmoothL1Loss)
- 额外的数据增强(RandomPerspective、RandomHorizontalFlip(p=0.2))
- 不同的 CNN(AlexNet、ResNet101)
- 切割后的CNN的不同输出尺寸(1,5,10,25,75,100,250,500)
非常感谢您的帮助!
python - 连体网络为每对图像分配相同的标签
我正在使用连体网络来识别输入图像是否是同一张图片。问题是网络不断分配标签 0(而不是 0 和 1),每次都导致 0.5 的准确度,但我不知道为什么。
这是模型:
这是距离
训练和 X/y 形状
预先感谢您的帮助。
keras - 如何用 Keras Dot 函数训练余弦相似度?
在比较两个文档的嵌入时,我想在 Keras 模型中使用余弦相似度。
- 培训的目标应该在哪个值范围内?含义在哪个值范围内可能是 Dot 函数的结果?如果嵌入非常相似,目标应该是什么值,如果它们非常不同,目标应该是什么?
- 在这种情况下,axis 参数是什么意思?设置axis = 1是否正确?
我已经建立了我的模型如下:
他们在文档中说:
是否在取点积之前沿点积轴对样本进行 L2 归一化。如果设置为 True,则点积的输出是两个样本之间的余弦接近度。
tensorflow - 无法在“float”和“list”的实例之间使用验证数据“<”训练连体
当我使用 keras model.fit 这样我不使用“validation_data”并且只有 x_train 和 y_train 时,即使我使用“validation_split”,我也不会收到任何错误。下面是工作代码
输出::::
现在我想介绍“validation_data”而不是使用“validation_split”
所以我先试了
我得到的错误是 TypeError: fit() got multiple values for argument 'batch_size'
所以我尝试了另一种方法,因为我无法解决上述问题
现在这个时间错误是
我很确定我在学习机器学习时犯了一些小错误。
我之所以尝试这个,是因为我想使用一个名为“talos”的工具,并且因为我正在使用需要多个输入的连体网络,并且为了让 talos 正常工作,我不能使用validation_split,而是使用validation_data https://autonomio。 github.io/talos/#/Examples_Multiple_Inputs
我想使用 talos 的原因是为了查询另一个线程,因为我的模型表现不佳,所以我想可能我应该先尝试超参数调整。
tensorflow - Fit_generator 使用 Talos 使用单组超参数,但 MemoryError 使用多组超参数
我正在尝试做一个小型作业项目,我正在尝试使用连体网络进行说话人识别。我正在尝试使用 talos 来寻找可能的最佳超参数。当尝试一组超参数时,代码通过 OK,但是当我给出一组超参数时,我得到了 MemoryError。
背景(不确定是否需要,但请允许我解释一下)
- 将音频分成 5 秒的块,每个块
- 计算每个音频样本的 MFCC 和 MFCC_del 和 MFCC_del_del 并将它们全部连接起来,以便将每个音频样本转换为(24x939)数据点/矩阵
- 通过有两组矩阵创建连体网络,其中一组所有“相似”配对的扬声器音频样本,另一组是“不同的扬声器”。
- 总共 6000 个测试点和 14886 个训练点(现在不使用验证,以后使用)
输出:
所以没有任何 Talos 或者它正在使用一组随机超参数。现在我第一次使用 Talos
我得到的错误是:
我的问题是因为我是 python/机器学习等的新手
- 如何正确使用 fit_generator(之前我尝试使用仅 fit 功能,但由于内存错误,我的窗口会出现死屏,我切换到尝试 fit_generator 但仍然出现相同的错误)。我认为我没有正确编写代码?
- 我的笔记本电脑规格太差,无法运行此代码吗?我的规格 RAM:16 GB windows 10 64 位 CPU:intel core i5(四核) GPU:它内置了 GTX1050,但我没有像之前尝试过的那样配置它,但运气不佳
deep-learning - 连体网络的线性变换
我有一个连体神经网络,我想对提取的图像特征应用线性变换,以使用 PCA 或自动编码器降低维度。如何在展平层之后实现它?
这是我的代码:
python - ModuleNotFoundError:没有名为“tensorflow.keras.legacy”的模块
无法找到遗留模块,希望可以寻求帮助,Siamese Network代码是 Github 上 One Shot Learing 的 Siamese Network,但运行时遇到问题。