我在使用sklearn在python中计算轮廓系数时遇到了麻烦.这是我的代码:
from sklearn import datasets
from sklearn.metrics import *
iris = datasets.load_iris()
X = pd.DataFrame(iris.data, columns = col)
y = pd.DataFrame(iris.target,columns = ['cluster'])
s = silhouette_score(X, y, metric='euclidean',sample_size=int(50))
Run Code Online (Sandbox Code Playgroud)
我收到错误:
IndexError: indices are out-of-bounds
Run Code Online (Sandbox Code Playgroud)
我想使用sample_size参数,因为在处理非常大的数据集时,轮廓太长而无法计算.任何人都知道这个参数如何工作?
完成追溯:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-72-70ff40842503> in <module>()
4 X = pd.DataFrame(iris.data, columns = col)
5 y = pd.DataFrame(iris.target,columns = ['cluster'])
----> 6 s = silhouette_score(X, y, metric='euclidean',sample_size=50)
/usr/local/lib/python2.7/dist-packages/sklearn/metrics/cluster/unsupervised.pyc in silhouette_score(X, labels, metric, sample_size, random_state, **kwds)
81 X, labels = X[indices].T[indices].T, labels[indices]
82 …Run Code Online (Sandbox Code Playgroud) 我在一个相关的问题中读到keras 自定义损失函数必须为每个批次项目返回一个标量。
我写了一个损失函数,为整个批次输出一个标量,网络似乎收敛了。但是,我无法找到任何关于此的文档或代码中究竟发生了什么。某处有广播吗?如果我添加样本权重会发生什么?有人能指出魔法发生的地方吗?
谢谢!
我正在使用 keras 并尝试在 64x64 图像上训练分类器。
我正在尝试优化我的训练管道并抓住瓶颈。
为此,我正在尝试创建更简单的 Keras 模型,以便我知道整个过程(加载图像、数据增强等)在 GPU 上花费非常低的时间。
到目前为止,我设法写了:
def create_network_dummy():
INPUT_SHAPE = (64, 64, 1)
inputs = Input(INPUT_SHAPE)
out = MaxPooling2D(pool_size = (1,1), strides=(64,64), 1)(inputs)
model = Model(inputs=[inputs], outputs=[out])
return model
Run Code Online (Sandbox Code Playgroud)
有没有可能有一个更小的?返回一个常量是行不通的,因为它破坏了图形,而 keras 不允许这样做。