我已经成功地在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
我对tensorflow图训练比Keras更熟悉,但我在这里试用Keras。在构建GAN时,生成器需要针对与鉴别器不同的损失(相反的损失)进行优化。在基本tensorflow中,这很容易使用2个优化器或通过调用optimizer.compute_gradients(...)和optimizer.apply_gradients(...)来实现适当的权重组。在Keras中,我看不到我可以实现其中任何一个。在Keras-GAN等实现中,似乎生成器和鉴别器的训练被拆分成单独的模型,然后逐批独立训练。这意味着每次有效更新需要的遍数比在一次遍历中运行两个优化器的基本tensorflow实现所需的遍
我一直在胡思乱想,试图让我创建的简单示例发挥作用,因为我发现给出的示例很难直观地掌握大型复杂数据集。下面的程序采用权重列表[x_0x_1...x_n]并使用它们在添加了一些随机噪声的平面上创建点的随机散射。然后我训练简单的神经网络在此数据上并检查结果。当我使用图形模型执行此操作时,一切都完美无缺,随着模型收敛于给定的权重,损失分数可预测地下降到零。但是,当我尝试使用顺序模型时,没有任何反应。代码如下如果您愿意,我可以发布我的其他脚本,该脚本使用图形而不是顺序,并显示它完美地找到了输入权重。#!/usr/bin/envpythonfromkeras.modelsimportSequent
我创建了一个包装器类,它初始化了一个keras.models.Sequential模型,并且有几个方法可以启动训练过程和监控进度。我在我的main文件中实例化此类并执行训练过程。相当平凡的东西。我的问题是:如何释放由tensorflow分配的所有GPU内存。我尝试了以下但没有成功:importkeras.backend.tensorflow_backendasKwithK.get_session()assess:K.set_session(sess)importtensorflowastffromneural_netimportNeuralNetwithtf.device('/gpu:
我遇到了问题,我无法使用Keras和ThensorFlow重现我的结果。似乎最近在Kerasdocumentationsite上发布了一个解决方法对于这个问题,但不知何故它对我不起作用。我做错了什么?我在MBPRetina(没有NvidiaGPU)上使用JupyterNotebook。#**WorkaroundfromKerasDocumentation**importnumpyasnpimporttensorflowastfimportrandomasrn#ThebelowisnecessaryinPython3.2.3onwardsto#havereproduciblebehavi
我已经在Keras中使用tensorflow实现了一个基本的MLP,我正在尝试解决一个二元分类问题。对于二元分类,sigmoid似乎是推荐的激活函数,我不太明白为什么,以及Keras如何处理这个问题。我知道sigmoid函数会产生0到1之间的值。我的理解是,对于使用sigmoid的分类问题,将有一个特定的阈值用于确定输入的类别(通常为0.5)。在Keras中,我没有看到任何指定此阈值的方法,所以我假设它是在后端隐式完成的?如果是这种情况,Keras如何区分在二元分类问题或回归问题中使用sigmoid?对于二元分类,我们需要一个二元值,但对于回归,我们需要一个标称值。我所看到的可能表明这
我正在尝试使用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
我正在尝试在keras中实现全梯度下降。这意味着对于每个时期,我都在整个数据集上进行训练。这就是批量大小定义为训练集长度大小的原因。fromkeras.modelsimportSequentialfromkeras.layersimportDensefromkeras.optimizersimportSGD,Adamfromkerasimportregularizersimportnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlineimportrandomfromnumpy.randomimportseedimportrandom
尝试按照在Rstudio链接上安装Keras和TensorFlow的说明进行操作时https://keras.rstudio.com/index.html我收到以下错误。这是一台运行Windows7的工作计算机。我不熟悉python,但我相信我已经正确安装了python3.6(我能够在SpyderIDE中运行简单的python代码)。在此先感谢您提供有关如何使此工作正常进行的任何建议。>install_keras()Creatingr-tensorflowcondaenvironmentforTensorFlowinstallation...Solvingenvironment:...
我有一个时间序列数据集,我正在尝试训练一个网络,使其过度拟合(显然,这只是第一步,然后我将与过度拟合作斗争)。网络有两层:LSTM(32个神经元)和Dense(1个神经元,无激活)训练/模型具有以下参数:epochs:20,steps_per_epoch:100,loss:"mse",optimizer:"rmsprop".TimeseriesGenerator生成输入系列:length:1,sampling_rate:1,batch_size:1.我希望网络只会记住这么小的数据集(我已经尝试了更复杂的网络但无济于事)并且训练数据集的损失几乎为零。事实并非如此,当我将training的