我如何用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
2 2024-01-08
编程技术问答社区
如何用pytorch同时迭代两个数据转换器?
我正在尝试实现一个拍摄两个图像的暹罗网络.我加载这些图像并创建两个单独的数据加载程序. 在我的循环中,我想同时通过两个数据加载程序,以便我可以在这两个图像上训练网络. for i, data in enumerate(zip(dataloaders1, dataloaders2)): # get the inputs inputs1 = data[0][0].cuda(async=True); labels1 = data[0][1].cuda(async=True); inputs2 = data[1][0].cuda(async=True); labels2 = data[1][1].cuda(async=True); labels1 = labels1.view(batchSize,1) labels2 = labels2.view(batchSize,1) # zero the parameter
12 2023-12-26
编程技术问答社区
所有这些参数在yoloV4模型中意味着什么?
训练yolov4的所有这些参数是什么意思? (下一个地图计算1300迭代) 最后的准确性map@0.5 = 63.16%,最佳= 68.55% 1249:26.351213,24.018257 AVG损失,0.001000率,2.983998秒,39968图像,10.505599 加载:0.000068秒 (下一个地图计算1300迭代) 最后的准确性map@0.5 = 63.16%,最佳= 68.55% 1250:13.904115,23.006844 AVG损失,0.001000率,4.093653秒,40000张图像,10.456502 调整大小,Random_coef = 1.40 解决方案 这是参数的含义. 对于您给定的示例: (next mAP calculation at 1300 iterations) Last accuracy mAP@0.5 = 63.16 %, best = 68.55 % 1250: 13.904
2 2023-12-25
编程技术问答社区
YOLO的.cfg文件中的比例和步长值是什么意思?
我试图了解yolov2的.cfg文件.我不明白 steps = -1,100,80000,100000 scales = .1,10,.1,.1 有人可以向我解释. 解决方案 steps是一个检查点(迭代次数),将应用尺度. scales是一个系数,在此检查点上learning_rate将乘以learning_rate.确定在训练期间增加迭代次数期间将如何更改learning_rate. 他们俩彼此相关,它们的数量相同. steps=200,400,600,20000,30000 scales=2.5,2,2,.1,.1 在步骤200处,尺度为2.5,步骤400量表为2等. https://github.com/alexeyab.com/alexeyab/darknet/darknet/darknet/sissues/279
4 2023-12-25
编程技术问答社区
进行多尺度训练(yolov2)。
我想知道如何在在纸上说: 原始Yolo使用的输入分辨率为448×448.锚固盒的添加我们将分辨率更改为416×416.但是,由于我们的模型仅使用卷积和合并层,因此可以在苍蝇上调整大小.我们希望Yolov2能够在不同尺寸的图像上运行,因此我们将其训练为模型.我们没有修复输入图像大小,而是每次迭代更改网络.每10批我们的网络随机选择一个新的图像维度大小. "由于我们的模型下半年的成绩为32倍,因此我们从以下32的倍数中拉出:{320,352,...,608}.因此,最小的选项是320×320,最大的最大选择是608×608.我们调整了大小.该维度并继续培训的网络." 我没有获得网络仅具有卷积和合并层的网络允许输入不同的分辨率.从我构建神经网络的经验中,如果将输入的分辨率更改为不同的规模,则该网络的参数数量将会改变,也就是说,该网络的结构将会改变. 那么,yolov2如何在苍蝇上更改? 我读了yolov2的配置文件,但我得到的只是random=1语句... 解决方
24 2023-12-25
编程技术问答社区
yolo算法的坐标输出代表什么?
我的问题与此主题相似.当我开始考虑Yolo算法的输出时,我正在通过Andrew Ng在Andrew Ng上观看此演讲.考虑到这个示例,我们使用19x19网格,只有一个带有2个类的接收场,因此我们的输出将为=> 19x19x1x5.最后一个维度(大小5的数组)表示以下内容: 1) The class (0 or 1) 2) X-coordinate 3) Y-coordinate 4) height of the bounding box 5) Width of the bounding box 我不明白x,y坐标是否表示整个图像的大小或公正和接受场(滤波器)的边界框.在视频中,边界框表示是接收场的一部分,但逻辑上的接收场比边界框小得多,而且人们可能会修补过滤器尺寸,因此对过滤器的定位边界框是没有道理的. > 因此,基本上,图像的边界框的坐标表示什么? 解决方案 来自 每个网格单元都可以预测B边界框以及C类 概率.边界框预测有5个组件:(x,y,
YOLO物体检测:该算法如何预测大于一个网格单元的边界盒?
我试图更好地了解Yolo2和3算法的工作方式.该算法会处理一系列的卷积,直到降低到13x13网格为止.然后,它能够对每个网格单元格中的对象以及这些对象的边界框进行分类. 如果您看这张图片,则会发现红色的边界框比任何单独的网格单元格大.边界框也以对象的中心为中心. 当网络激活基于单个网格单元时,我与预测边界框如何超过网格单元的大小有关的问题.我的意思是,网格单元外的所有内容都不知道神经元未知,以预测该单元格中检测到的对象的边界框. 更确切地说是我的问题: 1.该算法如何预测大于网格单元的边界框? 2.该算法如何知道对象的中心位于哪个单元格? 解决方案 网格单元以外的所有内容都不是神经元未知的,预测该单元格中检测到的对象的边界框. 这不太正确.单元对应于图像的分区,如果对象的中心位于内部. 但是,这些输出神经元的接受场比单元格大得多,并且实际覆盖了整个图像.因此,它能够识别并绘制一个比其分配的"中心单元"大得多的对象周围的边界框.
6 2023-12-25
编程技术问答社区
Keras 1d卷积层是如何处理单词嵌入-文本分类问题的?(过滤器、核大小和所有超参数)
我目前正在使用KERAS开发一种文本分类工具.它有效(正常运行,我最多达到98.7验证精度),但我无法围绕一张1D卷积层与文本数据一起工作. 我应该使用哪些超参数? 我有以下句子(输入数据): 句子中的最大单词:951(如果较少 - 添加了桨) 词汇大小:〜32000 句子数量(用于培训):9800 embedding_vecor_length:32(单词嵌入中每个单词有多少关系) batch_size:37(这个问题对此无关重要) 标签数(类):4 这是一个非常简单的模型(我制作了更复杂的结构,但奇怪的是它可以更好地工作 - 即使不使用LSTM): model = Sequential() model.add(Embedding(top_words, embedding_vecor_length, input_length=max_review_length)) model.add(Conv1D(filters=32, kernel_size=2
6 2023-12-11
编程技术问答社区
如何使用TensorFlow/keras CNN模型从我的相机(我加载)中预测此代码?
用于在实时摄像机上预测的代码 这很简单,我想做的事情,从文件中加载我的TensorFlow AI.试图使用它来预测我的实时网络摄像头(通过google.colab). 我正在尝试使用我制作的AI预测(使用链接中的代码),保存和加载(使用TensorFlow: model.save.save 和 load_model ) 我有一个副本,我正在用自己的模型加载: model = load_model("/content/drive/MyDrive/aifolder") # Load from folder saved to. 他们从在线下载以下方式: #face_cascade = cv2.CascadeClassifier(cv2.samples.findFile(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')) 在标题为网络摄像头视频的代码下,在底部,他们开始使用AI预测: f
4 2023-11-29
编程技术问答社区
用于面部情绪识别的flask网络应用框架中的视频/音频/文字信息的同步化
我已经在Google Colab中培训了CNN模型,用于使用包含7个情绪类别的FER2013数据集进行面部表达检测('Angry', 'Disgust', 'Fear', 'Happy', 'Sad', 'Surprise', 'Neutral'). 使用烧瓶框架构建Web应用程序. OpenCV的haarcascade_frontalface_default.xml用于检测面. 因此,我可以使用笔记本电脑的网络摄像头进行实时的视频实时直播流,并检测面部表情. 但是,当添加与表达式相对应的音频以及文本消息时,实时视频流落后(陷入其中)和视频/音频不同步.如何使它们同步或如何传递与表达式相对应的文本和音频 每3秒钟(当视频流进行每3秒钟进行一次框架,并传递与该特定特定的音频消息 框架以及短信)? 我转介到Web应用程序创建的app.py和index.html的下面链接. https:/https:/https:/https://levelup.gitConnecte
2 2023-11-29
编程技术问答社区
三维卷积核的权重可视化
我使用的是3x3x3尺寸的3D内核作为介绍层,并希望绘制层的重量. 由于不可能在3D中绘制,因此我试图将内核分为3 3×3进行绘图. 这种方法正确吗? CONC层由5层#Model.Add组成(Layers.Conv3d(5,(3,3,3),填充='Same’)) ) 请在我用来绘制权重的代码下面找到 的代码 from keras.models import load_model mymodel = load_model(‘model.hdf5′) from matplotlib import pyplot as plt # load the model # retrieve weights from the 1st conv layer layer filters, biases = mymodel.layers[0].get_weights() # normalize filter values to 0-1 so we can visualize the
10 2023-11-20
编程技术问答社区
卷积神经网络的可视化--权重或激活?
上面的可视化是第一个卷积层的权重的渲染,还是第一个卷积层上给定的输入图像上的激活? 以下是我一直在训练48小时的Inception V2模型第一卷积层的权重的可视化. 我确定仅在48小时后(在CPU上)没有收敛我的模型.这些权重现在不应该开始平滑,训练准确性超过90%? 解决方案 根据上图显示了第一个卷积层学到的卷积内核. 注意:实际上,在图中可能是计数96卷积内核,其大小为11×11×3. 其他解决方案 在这一特殊情况下,正在可视化Alexnet的第一层的重量.在激活可视化方面,视觉效果不如重量的视觉效果那么光滑. 让我知道您是否有问题
所有图像的 Grad Cam 输出结果相同
我正在使用Grad Cam来查看测试图像的哪些区域对于resnet50的预测最重要.我得到的输出有一些错误. 代码片段: from tensorflow.keras.models import Model import tensorflow as tf import numpy as np import cv2 class GradCAM: def __init__(self, model, classIdx, layerName=None): # store the model, the class index used to measure the class # activation map, and the layer to be used when visualizing # the class activation map self.model = model self.cl
4 2023-11-20
编程技术问答社区
在不同的版本中从tf.keras加载保存的模型
我在Google Colab中使用Tensorflow和Keras创建了一个图像分类模型.它分别用GPU版本1.15和2.2.4保存在那里.现在,我想使用CPU和版本1.10和2.2.2将它们加载到我的远程机器中什么是什么原因以及如何解决这个问题.我已经提到了下面的代码和错误: import tensorflow as tf from tensorflow import keras from tensorflow.keras.models import load_model from tensorflow.keras.models import model_from_json json_file = open('model.json', 'r') loaded_model_json = json_file.read() json_file.close() loaded_model = model_from_json(loaded_model_json) 错误: ValueEr
2 2023-11-18
编程技术问答社区
卷积神经网络架构-正确吗?
我正在尝试训练卷积神经网.因此,我使用的是646张图像/车牌的数据集,其中包含8个字符(0-9,A-Z;没有字母'o'和空白空间,总计36个可能的字符).这些是我的培训数据X_train.它们的形状为(646, 40, 200, 3),带有颜色代码3.我将它们调整到相同的形状. i也有一个数据集,其中包含此图像的标签,我将其单热编码为Shape (646, 8, 36)的数组.此数据是我的y_train数据. 现在,我正在尝试应用一个看起来像这样的神经网络: 该架构取自本文:我排除了批准部分,因为这部分对我来说不是最有趣的部分.但是我对层的顶部非常不确定.这意味着最后一个合并层以model.add(Flatten()) ... 开头的零件 model = Sequential() model.add(Conv2D(32, kernel_size=(3, 3), input_shape = (40, 200, 3), activation = "relu")) model.
10 2023-11-13
编程技术问答社区
ValueError: 输入0与层conv2d_1不兼容:预期ndim=4,发现ndim=3
在询问已经询问此问题的问题后,我一直在提出问题.我试图将字母从A到D分类.所有输入图像均为64x64和GrayColor. 我的CNN的第一层是: model = Sequential() model.add(Conv2D(32, (3, 3), input_shape = input_shape, activation = 'relu')) 和input_shape它来自: # Define the number of classes num_classes = 4 labels_name={'A':0,'B':1,'C':2,'D':3} img_data_list=[] labels_list=[] for dataset in data_dir_list: img_list=os.listdir(data_path+'/'+ dataset) print ('Loading the images of dataset-'+'{}\n'.
0 2023-11-13
编程技术问答社区
ValueError: 检查目标时出错:预期dense_2有4个维度,但得到了形状为(7942, 1)的数组。
我一直在使用以下功能API进行图像分类任务,使用CNN: def create_model(X_train, X_test): visible = Input(shape=(X_train.shape[0], X_train.shape[1], 1)) conv1 = Conv2D(32, kernel_size=4, activation='relu')(visible) hidden1 = Dense(10, activation='relu')(pool2) output = Dense(1, activation='sigmoid')(hidden1) model = Model(inputs = visible, outputs = output) model.compile(loss='binary_crossentropy', optimizer='rmsprop',
16 2023-11-13
编程技术问答社区
为我的CNN运行一个微调模型:数值错误
因此,我试图在数据集中使用预训练的模型,然后将其与我自己的CNN模型进行比较.但是,一旦尝试进行模型,我就会看到一个错误.非常适合((无,4、4、1)vs(none,)).这个错误来自哪里?我应该编辑前CNN吗? 我使用的模型是Resnet50,没有修改,除了输入层更改为128,并且有2个输出. 欢迎任何帮助, 代码: history = modelB.fit_generator(train_data, validation_data = test_data, epochs=5, steps_per_epoch = 1714,) 错误: --------------------------------------------------------------------------- Va
6 2023-11-13
编程技术问答社区
ValueError: 对数和标签必须具有相同的形状((无,4)对(无,1))。
我尝试建立一个卷积神经网络,以对狗和猫进行分类.我在标题中提到了错误. 从我的搜索中,有人说错误属于Tensorflow和Keras库的不同版本,其他人则说这是语法错误.我会把代码留在这里,告诉我在哪里犯了错误. #IMPORTING LIBRARIES import tensorflow as tf import pandas as pd import keras from keras.preprocessing.image import ImageDataGenerator #IMAGE DATA PREPROCESSING #preprocessing the training set train_datagen = ImageDataGenerator( rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) t
6 2023-11-13
编程技术问答社区
在训练神经元网络时,训练和验证数据之间的损失差异在开始时有多重要?
简短的问题: 培训开始时验证和培训损失之间的差异(第一个时期)是应使用的数据量的良好指标吗? 例如,增加数据量直到一开始的差异尽可能较小,这是一种很好的方法吗?它可以节省我的时间和计算. 背景: 我正在建立一个非常快速地贴合的神经元网络.应用了许多不同的技术之后,最好的结果如辍学,批处理,降低学习率,减少批次大小,增加数据的种类,减少层,增加滤波器尺寸.....仍然非常糟糕. 虽然训练损失降低了很好的减少,但验证损失过早过早(我的意思是,未达到所需损失,应该少得多) 由于我的数据集训练〜200个样本花了24小时的50个时代,因此我希望找到一种方法,以与我上面描述的所有方法进行过度拟合,然后再增加数据量.因为没有帮助我在增加数据量. 我正在思考我的网络足以消除过度拟合的数据.我知道这不容易回答,因为这取决于数据的复杂性和我要解决的任务.因此,我试图将我的问题推广到: 解决方案 简短问题的简短答案:否 说明:(train_loss -val_loss)与您培训模型所需的数