草庐IT

Scikit-Learn-Keras

全部标签

python - 如何使用 Keras 的分类单热标签进行训练?

我有这样的输入:[[1,2,3][4,5,6][7,8,9]...]形状(1,num_samples,num_features),标签如下所示:[[0,1][1,0][1,0]...]形状(1,num_samples,2)。但是,当我尝试运行以下Keras代码时,出现此错误:ValueError:检查模型目标时出错:预期dense_1具有2个维度,但得到形状为(1,8038,2)的数组。从我读过的内容来看,这似乎源于我的标签是二维的,而不仅仅是整数。这是否正确?如果正确,我如何在Keras中使用one-hot标签?代码如下:num_features=463trX=np.random(8

python - 使用 HOSVD 分解后 sktensor/scikit-tensor 中的张量重建

我目前正在分解3-D张量,例如[user,item,tags]=rating。我在python中使用sktensor库进行分解。例如。T=np.zeros((3,4,2))T[:,:,0]=[[1,4,7,10],[2,5,8,11],[3,6,9,12]]T[:,:,1]=[[13,16,19,22],[14,17,20,23],[15,18,21,24]]T=dtensor(T)Y=hooi(T,[2,3,1],init='nvecs')现在函数hooi返回的是什么以及如何从中重建张量??? 最佳答案 首先,函数tucker_h

python - 拟合多项式的 Keras 模型

我从四次多项式生成了一些数据,并想在Keras中创建一个回归模型来拟合这个多项式。问题是拟合后的预测似乎基本上是线性的。由于这是我第一次使用神经网络,我认为我犯了一个非常微不足道和愚蠢的错误。这是我的代码:model=Sequential()model.add(Dense(units=200,input_dim=1))model.add(Activation('relu'))model.add(Dense(units=45))model.add(Activation('relu'))model.add(Dense(units=1))model.compile(loss='mean_sq

python - 使用预训练的 Inceptionv3 提取瓶颈特征 - Keras 的实现和 Native Tensorflow 实现之间的差异

(抱歉发了这么长的帖子)全部,我想使用预训练Inceptionv3模型的瓶颈特征来预测我的输入图像的分类。在训练模型和预测分类之前,我尝试了3种不同的方法来提取瓶颈特征。我的3种方法产生了不同的瓶颈特征(不仅在值上,甚至在大小上也不同)。方法1和2中我的瓶颈特征的大小:(输入图像的数量)x3x3x2048方法3中我的瓶颈特征的大小:(输入图像的数量)x2048为什么基于Keras的Inceptionv3模型和原生Tensorflow模型的大小不同?我的猜测是,当我在Keras中说include_top=False时,我并没有提取“pool_3/_reshape:0”层。这个对吗?如果是

python - Keras:binary_crossentropy 和 categorical_crossentropy 混淆

在使用TensorFlow一段时间后,我阅读了一些Keras教程并实现了一些示例。我找到了几个使用keras.losses.binary_crossentropy作为损失函数的卷积自动编码器的教程。我认为binary_crossentropy应该不是一个多类损失函数并且很可能会使用二进制标签,但实际上Keras(TFPython后端)调用tf.nn.sigmoid_cross_entropy_with_logits,它实际上用于具有不互斥的多个独立类的分类任务。另一方面,我对categorical_crossentropy的期望是用于多类分类,其中目标类有相互依赖,但不一定是一个-热编

python - Scikit 学习 : roc_auc_score

我正在使用scikit-learn中的roc_auc_score函数来评估我的模型性能。但是,无论我使用predict()还是predict_proba(),我都会得到不同的值p_pred=forest.predict_proba(x_test)y_test_predicted=forest.predict(x_test)fpr,tpr,_=roc_curve(y_test,p_pred[:,1])roc_auc=auc(fpr,tpr)roc_auc_score(y_test,y_test_predicted)#=0.68roc_auc_score(y_test,p_pred[:,1

python - 多项式朴素贝叶斯参数 alpha 设置? scikit学习

有谁知道在做朴素贝叶斯分类时如何设置alpha参数吗?例如我首先使用词袋构建特征矩阵,矩阵的每个单元格都是词的计数,然后我使用tf(termfrequency)对矩阵进行归一化。但是当我使用朴素贝叶斯构建分类器模型时,我选择使用多项式N.B(我认为这是正确的,而不是伯努利和高斯)。默认的alpha设置是1.0(文档说它是拉普拉斯平滑,我不知道是什么)。结果真的很糟糕,只有21%的召回率找到了正类(目标类)。但是当我设置alpha=0.0001(我随机选择)时,结果得到95%的召回率。此外,我检查了多项式N.Bformula,我认为这是因为alpha问题,因为如果我使用单词计数作为特征,

python - Scikit 学习错误消息 'Precision and F-score are ill-defined and being set to 0.0 in labels'

这个问题在这里已经有了答案:UndefinedMetricWarning:F-scoreisill-definedandbeingsetto0.0inlabelswithnopredictedsamples(7个答案)ClassificationReport-PrecisionandF-scoreareill-defined(2个答案)关闭去年。我正在研究二元分类模型,分类器是朴素贝叶斯。我有一个几乎平衡的数据集,但是我在预测时收到以下错误消息:UndefinedMetricWarning:PrecisionandF-scoreareill-definedandbeingsetto0.

python - Keras - 所有图层名称都应该是唯一的

我将keras中的两个VGG网络结合在一起进行分类任务。当我运行程序时,它显示错误:RuntimeError:Thename"predictions"isused2timesinthemodel.Alllayernamesshouldbeunique.我很困惑,因为我在我的代码中只使用了一次预测层:fromkeras.layersimportDenseimportkerasfromkeras.modelsimportModelmodel1=keras.applications.vgg16.VGG16(include_top=True,weights='imagenet',input_t

python - Jupyter 找不到 keras 的模块

我已经安装了Anaconda的Tensorflow和Keras(在Windows10上),我创建了一个使用Python3.5.2的环境(Anaconda中的原始环境是Python3.6)。当我尝试执行importkerasasks时,我得到了ModuleNotFoundError:Nomodulenamed'keras'。我试图通过sys.path.append(C:\\Users\\...\\Anaconda3\\python.exe)解决这个问题同时使用笔记本电脑和控制台,但我仍然遇到同样的错误。我该如何解决这个问题? 最佳答案