我已经在Keras问题上问过这个问题,但是由于那里没有答案,所以我决定在这里尝试运气。
我正在使用自定义优化程序运行mnist mlp示例,目前该示例仅是来自optimizers.py的SGD的复本,即
from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import Optimizer
from keras import backend as K
from legacy import interfaces
import numpy as np
class testsgd(Optimizer):
..... [everything same as sgd] .....
myopt = testsgd()
....[define model]....
model.compile(loss='categorical_crossentropy',
optimizer=myopt,
metrics=['accuracy'])
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', …Run Code Online (Sandbox Code Playgroud) 我有一个大的(100K×30K)和svmlight格式的(非常)稀疏数据集,我按如下方式加载:
import numpy as np
from scipy.cluster.vq import kmeans2
from scipy.spatial.distance import pdist, squareform
from sklearn.datasets import load_svmlight_file
X,Y = load_svmlight_file("somefile_svm.txt")
Run Code Online (Sandbox Code Playgroud)
它返回一个稀疏的scipy数组X.
我只需要计算所有训练点的成对距离
D = pdist(X)
Run Code Online (Sandbox Code Playgroud)
不幸的是,scipy.spatial.distance中的距离计算实现仅适用于密集矩阵.由于数据集的大小,使用pdist作为不可行
D = pdist(X.todense())
Run Code Online (Sandbox Code Playgroud)
任何有关此问题的稀疏矩阵距离计算实现或变通方法的指针都将非常受欢迎.
非常感谢
假设我有以下内容numpy.ndarray:
array([[50, 0, 0],
[ 0, 3, 47],
[ 0, 36, 14]])
Run Code Online (Sandbox Code Playgroud)
如何将其转换为这种形式的字典:
{0: {0: 50}, 1: {1: 3, 2: 47}, 2: {1: 36, 2: 14}}
Run Code Online (Sandbox Code Playgroud)
这个问题类似于python 2d array to dict,但无论我多么努力地尝试,我都无法找到类似于那里的答案的解决方案。
python dictionary numpy type-conversion multidimensional-array