草庐IT

keras-rl

全部标签

python - 在 Keras/TensorFlow 中使用纯 numpy 指标作为指标

我正在参加Kaggle竞赛,评估指标定义为本次比赛是根据不同交集联合(IoU)阈值的平均精度进行评估的。一组建议的对象像素和一组真实对象像素的IoU计算如下:IoU(A,B)=(A∩B)/(A∪B)该指标扫描一系列IoU阈值,在每个点计算平均精度值。阈值范围从0.5到0.95,步长为0.05:(0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95)。换句话说,在阈值为0.5时,如果预测对象与地面实况对象的交集大于0.5,则该预测对象被视为“命中”。在每个阈值t处,根据真阳性(TP)、假阴性(FN)和假阳性(FP)的数量计算精度值)将预测对象与所有地面

python - 在 Keras 中,如何为 LSTM 层获取 3D 输入和 3D 输出

在我的原始设置中,我得到了X1=(1200,40,1)y1=(1200,10)然后,我可以完美地使用我的代码:model=Sequential()model.add(LSTM(12,input_shape=(40,1),return_sequences=True))model.add(LSTM(12,return_sequences=True))model.add(LSTM(6,return_sequences=False))model.add((Dense(10)))现在,我进一步得到了另一个与X1和y1大小相同的时间序列数据。即,X2=(1200,40,1)y2=(1200,10)

python - 在 Keras 中获得预测

我已经成功地在Keras中训练了一个简单的模型来对图像进行分类:model=Sequential()model.add(Convolution2D(32,3,3,border_mode='valid',input_shape=(img_channels,img_rows,img_cols),activation='relu',name='conv1_1'))model.add(Convolution2D(32,3,3,activation='relu',name='conv1_2'))model.add(MaxPooling2D(pool_size=(2,2)))model.add(D

python - 在 Keras 中训练 GAN 时,是否需要多次通过来优化生成器和鉴别器?

我对tensorflow图训练比Keras更熟悉,但我在这里试用Keras。在构建GAN时,生成器需要针对与鉴别器不同的损失(相反的损失)进行优化。在基本tensorflow中,这很容易使用2个优化器或通过调用optimizer.compute_gradients(...)和optimizer.apply_gradients(...)来实现适当的权重组。在Keras中,我看不到我可以实现其中任何一个。在Keras-GAN等实现中,似乎生成器和鉴别器的训练被拆分成单独的模型,然后逐批独立训练。这意味着每次有效更新需要的遍数比在一次遍历中运行两个优化器的基本tensorflow实现所需的遍

python - 试图让简单的 Keras 神经网络示例工作

我一直在胡思乱想,试图让我创建的简单示例发挥作用,因为我发现给出的示例很难直观地掌握大型复杂数据集。下面的程序采用权重列表[x_0x_1...x_n]并使用它们在添加了一些随机噪声的平面上创建点的随机散射。然后我训练简单的神经网络在此数据上并检查结果。当我使用图形模型执行此操作时,一切都完美无缺,随着模型收敛于给定的权重,损失分数可预测地下降到零。但是,当我尝试使用顺序模型时,没有任何反应。代码如下如果您愿意,我可以发布我的其他脚本,该脚本使用图形而不是顺序,并显示它完美地找到了输入权重。#!/usr/bin/envpythonfromkeras.modelsimportSequent

python - 将 Keras 与 tensorflow 后端一起使用时如何控制内存?

我创建了一个包装器类,它初始化了一个keras.models.Sequential模型,并且有几个方法可以启动训练过程和监控进度。我在我的main文件中实例化此类并执行训练过程。相当平凡的东西。我的问题是:如何释放由tensorflow分配的所有GPU内存。我尝试了以下但没有成功:importkeras.backend.tensorflow_backendasKwithK.get_session()assess:K.set_session(sess)importtensorflowastffromneural_netimportNeuralNetwithtf.device('/gpu:

python - 使用 Python 中的 Keras 和 TensorFlow 无法重现结果

我遇到了问题,我无法使用Keras和ThensorFlow重现我的结果。似乎最近在Kerasdocumentationsite上发布了一个解决方法对于这个问题,但不知何故它对我不起作用。我做错了什么?我在MBPRetina(没有NvidiaGPU)上使用JupyterNotebook。#**WorkaroundfromKerasDocumentation**importnumpyasnpimporttensorflowastfimportrandomasrn#ThebelowisnecessaryinPython3.2.3onwardsto#havereproduciblebehavi

python - Keras 二元分类 - Sigmoid 激活函数

我已经在Keras中使用tensorflow实现了一个基本的MLP,我正在尝试解决一个二元分类问题。对于二元分类,sigmoid似乎是推荐的激活函数,我不太明白为什么,以及Keras如何处理这个问题。我知道sigmoid函数会产生0到1之间的值。我的理解是,对于使用sigmoid的分类问题,将有一个特定的阈值用于确定输入的类别(通常为0.5)。在Keras中,我没有看到任何指定此阈值的方法,所以我假设它是在后端隐式完成的?如果是这种情况,Keras如何区分在二元分类问题或回归问题中使用sigmoid?对于二元分类,我们需要一个二元值,但对于回归,我们需要一个标称值。我所看到的可能表明这

python - 预测取决于 Keras 中的批量大小

我正在尝试使用keras对图像进行二进制分类。我的CNN模型在训练数据上训练有素(训练准确率约为90%,验证准确率约为93%)。但是在训练期间,如果我设置batchsize=15000,我会得到FigureI输出,如果我设置batchsize=50000,我会得到FigureII作为输出。有人可以告诉我出了什么问题吗?预测不应该取决于批量大小,对吗?我用于预测的代码:y=model.predict_classes(补丁,batch_size=50000,verbose=1)y=y.reshape((256,256))我的模型:-model=Sequential()model.add(C

python - keras中的全梯度下降

我正在尝试在keras中实现全梯度下降。这意味着对于每个时期,我都在整个数据集上进行训练。这就是批量大小定义为训练集长度大小的原因。fromkeras.modelsimportSequentialfromkeras.layersimportDensefromkeras.optimizersimportSGD,Adamfromkerasimportregularizersimportnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlineimportrandomfromnumpy.randomimportseedimportrandom