【问题标题】:Turning K-means written in Octave into Tensorflow.js将用 Octave 编写的 K-means 转换为 Tensorflow.js
【发布时间】:2020-11-09 06:08:26
【问题描述】:

在一个项目中,我对 K-means 算法的 octave 进行了原型改造。如果无法在 HTML 文件中运行 Octave,我将如何将这个用 octave 编写的 K-means 算法转换为 Tensorflow.js,以便我能够在浏览器中运行它。:

x = [1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18]
time = [1,2,3,4,5,6]

k = size(x)
foo = 0
mu = zeros(k(1),1)

for i = 1:k(2),
  mu = [x(:,i)/pinv(time(i)), mu]
  foo = foo+1
endfor
mu(:,[foo+1]) = [];
usr = sum(mu') / numel(x)
usr = usr'


x = [x,usr]



centroids = [x(:,randi([1,size(x)(2)])), x(:,randi([1,size(x)(2)]))]


if centroids(:,1) == centroids(:,2),
  for i = 1:500,
    centroids = [x(:,randi([1,size(x)(2)])), x(:,randi([1,size(x)(2)]))]
  endfor
endif


K = size(centroids, 2);

idx = zeros(size(x,1), 1);


for c = 1:500,

for i = 1:size(x,2),
    min = Inf;
    for j = 1:K,
        diff = sum((x(:,i) - centroids(:,j)).^2);
        if min > diff
            min = diff;
            idx(i) = j;
        end
    end
end

for i = 1:size(centroids,2),
  xi = x(:,idx==i)
  ck = size(xi,2);
  centroids(:,i) = [sum(xi,2) * (1/size(x(:,idx==i),2))]
endfor
endfor

【问题讨论】:

    标签: javascript tensorflow octave k-means tensorflow.js


    【解决方案1】:

    您可以使用this answer 中编写的一些服务器端解决方案,或者如果您确实需要在浏览器中运行,恐怕您需要在 JavaScript 中翻译它。您可以手动完成,也可以使用 matscript 之类的工具。

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 1970-01-01
      • 2013-07-06
      • 2019-04-13
      • 1970-01-01
      • 2013-07-03
      • 2011-12-22
      • 2013-07-03
      • 2011-11-02
      相关资源
      最近更新 更多