首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将用Octave编写的K-means转换为Tensorflow.js

将用Octave编写的K-means转换为Tensorflow.js
EN

Stack Overflow用户
提问于 2020-07-20 10:26:18
回答 1查看 125关注 0票数 5

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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-07-22 20:58:00

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62987784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档