diff --git a/README.md b/README.md index aa4700a..8e79a4f 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,7 @@ # sakuya 你的智慧分身 -1. 确立目标本质 -2. 模拟环境与规则 -3. 基本条件 +1. 探寻变化规律, 规律即因果律 +2. 认知外在环境, 认知内在目的, 内外即别与自我 +3. 自我之存在, 自我之效用, 即为天命 -实施: -1. 智力问题通用方案基础 -2. 工具使用控制规则 -3. 修正控制 -4. 逻辑判断 - -例: -1. 要求实现某行为结果 -2. 实施逻辑的组构 -3. 实施条件的采集 -4. 实施过程的模拟 diff --git a/index.html b/index.html index 0b68972..6a989e6 100644 --- a/index.html +++ b/index.html @@ -26,49 +26,46 @@ - -

基因列表

- -
- -

统计曲线

- -
- -

I/O 输入数据/允许读取/接口触点

- -
- -

I/O 允许调用 | IO结构树

- -
+
+ +

基因列表

+ +
+ +

统计曲线

+ +
+ +

I/O 输入数据/允许读取/接口触点

+ +
+ +

I/O 允许调用 | IO结构树

+ +
+
- diff --git a/main.js b/main.js index 6cb78b5..a122a61 100644 --- a/main.js +++ b/main.js @@ -1,5 +1,4 @@ import Matrix from './widgets/matrix.js' -import convolutionMatrix from './tools/convolutionMatrix.js' const matrix = new Matrix(32, 32) document.body.appendChild(matrix.element) @@ -12,35 +11,6 @@ const image = new Image() image.src = 'img/00010-938548211.png' image.onload = function () { context.drawImage(image, 0, 0) - //let handle = document.createElement("button") - //let create = document.createElement("button") - //document.body.appendChild(handle) - //document.body.appendChild(create) - //handle.innerText = "处理图片" - //create.innerText = "生成图片" - //handle.onclick = function () { - // let imgData = context.getImageData(0, 0, canvas.width, canvas.height) - // let average = 0 - // //// 灰度处理 - // //for (var i = 0; i < imgData.data.length; i += 4) { - // // average = Math.floor((imgData.data[i] + imgData.data[i + 1] + imgData.data[i + 2]) / 3); //将红、绿、蓝色值求平均值后得到灰度值 - // // imgData.data[i] = imgData.data[i + 1] = imgData.data[i + 2] = average; //将每个像素点的色值重写 - // // //matrix.setItem(i, 1, 125) - // // //console.log(imgData.data[i]) - // // //matrix.setIndex(i / 4, imgData.data[i]) - // //} - // //context.putImageData(imgData, 0, 0); //将处理后的图像数据重写至Canvas画布,此时画布中图像变为黑白色 - //}; - //create.onclick = function () { // 单击“生成图片”按钮,导出图片 - // var imgSrc = canvas.toDataURL(); //获取图片的DataURL - // var newImg = new Image(); - // var result = document.createElement("div"); - // document.body.appendChild(result) - // newImg.src = imgSrc; //将图片路径赋值给src - // result.innerHTML = ''; - // result.appendChild(newImg); - // //matrix.setItem(2, 0, 125) - //}; //获取图片数据对象 let imgData = context.getImageData(0, 0, canvas.width, canvas.height) @@ -62,78 +32,10 @@ image.onload = function () { } context.putImageData(imgData, 0, 0); - //// 10 层滤波器 - //for (let i = 0; i < 10; i++) { - // context.putImageData(convolutionMatrix(imgData, [ - // //-1, -1, 0, - // //-1, 1, 1, - // //0, 1, 1, - // -2, -1, 0, - // 1, -1, 1, - // 8, 0, -4 - // ]), 0, 0) - //} - // 将图像展示到矩阵中 for (var i = 0; i < imgData.data.length && i < 4096; i += 4) { matrix.setItem(i / 4, 0, imgData.data[i]) } - - //let ctx = this - //for (var i = 0; i < imgData.data.length; i += 4) { - // imgData.data[i + 1] = 128 - // imgData.data[i + 2] = 128 - //} - //context.putImageData(imgData, 0, 0); - - // /* - // * 参数中的 kernel 就是卷积核方阵,不过顺着排列成了一个九位的数组 - // * 像是这样 [-1, -1, -1, -1, 8, -1, -1, -1, -1] - // * offset 对RGBA数值直接增加,表现为提高亮度 - // * 下面的for循环 - // * y 代表行,x 代表列,c 代表RGBA - // */ - //convolutionMatrix(input, kernel, offset = 0) { - // let ctx = this.outputCtx - // let output = ctx.createImageData(input) - // let w = input.width, - // h = input.height - // let iD = input.data, - // oD = output.data - // for (let y = 1; y < h - 1; y += 1) { - // for (let x = 1; x < w - 1; x += 1) { - // for (let c = 0; c < 3; c += 1) { - // let i = (y * w + x) * 4 + c - // oD[i] = - // offset + - // (kernel[0] * iD[i - w * 4 - 4] + - // kernel[1] * iD[i - w * 4] + - // kernel[2] * iD[i - w * 4 + 4] + - // kernel[3] * iD[i - 4] + - // kernel[4] * iD[i] + - // kernel[5] * iD[i + 4] + - // kernel[6] * iD[i + w * 4 - 4] + - // kernel[7] * iD[i + w * 4] + - // kernel[8] * iD[i + w * 4 + 4]) / - // this.divisor - // } - // oD[(y * w + x) * 4 + 3] = 255 - // } - // } - // ctx.putImageData(output, 0, 0) - //} - - -}; +} document.body.appendChild(canvas) - -// 第一层输入层数量固定 32*32 -// 通过 滤波器 保留特征, 到输出合并层时, -// 网络深度有限, 因而特征规模有限(但非常大) -// 如何作关键特征映射? -// 1. 存储常见特征, 如果符合, 滤波器将一组特征保留, 因而最后一层滤波器输出结果就是// 卷积结果为激活值, 算子为特征 -// 2. 输入一张图像, 设定此图像输出结果 -// 3. 输入另一张图, 设定此图像输出结果 - -// 4. 输入另一张图, 排除所有不同激活的 diff --git a/package.json b/package.json index ff548b3..d7fd934 100644 --- a/package.json +++ b/package.json @@ -3,19 +3,18 @@ "version": "1.0.0", "description": "你的智慧分身(也许", "main": "index.js", + "type": "module", "scripts": { "dev": "vite", "build": "vite build", - "preview": "vite preview", - "start": "node server/index.js" + "preview": "vite preview" }, "devDependencies": { "vite": "^2.6.4" }, "dependencies": { "frappe-charts": "^1.6.2", - "neataptic": "^1.4.7", - "p5": "^1.4.0" + "neataptic": "^1.4.7" }, "repository": { "type": "git", diff --git a/server/index.js b/server/index.js deleted file mode 100644 index 20693f0..0000000 --- a/server/index.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' - -// 规则 -// 1. 持续运行 -// 2. 周期回归 -// 3. 锚点小模型 -// 4. 基础规律模型 - -async function thinking(x, n = 0) { - if (x === 'x') return 'xD' - if (n > 1024) return x + 'De' - return await thinking(x, n + 1) -} - -async function main(tasks = []) { - while (true) { - const task = tasks.pop() // 取一个任务(后进先出) - // 执行任务(了解任务目标, 前提是认知目标和其宏观原理) - // 寻找方法(了解寻找方法的原理, 以及方法的优劣分辨) - // 尝试解法(分支扩展拟合, 或全局拟合) - // 执行一次thinking - //await thinking('x') - // 内存低于1GB时,终止进程 - if (process.memoryUsage().rss > 1024 * 1024 * 1024) { - console.log('内存不足,进程终止') - process.exit() - } - // 每秒一次打印当前进程占用的内存 - await new Promise((resolve) => setTimeout(resolve, 100)) - const used = process.memoryUsage().heapUsed / 1024 / 1024 - console.log(`内存使用 ${Math.round(used * 100) / 100} MB`) - } -} - -main() diff --git a/tools/convolutionMatrix.js b/tools/convolutionMatrix.js deleted file mode 100644 index facc31c..0000000 --- a/tools/convolutionMatrix.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 参数中的 kernel 就是卷积核方阵,不过顺着排列成了一个九位的数组 - * 像是这样 [-1, -1, -1, -1, 8, -1, -1, -1, -1] - * offset 对RGBA数值直接增加,表现为提高亮度 - * 下面的for循环 - * y 代表行,x 代表列,c 代表RGBA - */ - -export default function (image, kernel, offset = 0) { - let { width, height, data } = image - for (let y = 1; y < height - 1; y += 1) { - for (let x = 1; x < width - 1; x += 1) { - for (let c = 0; c < 3; c += 1) { - let i = (y * width + x) * 4 + c - data[i] = - offset + - ( - kernel[0] * data[i - width * 4 - 4] + - kernel[1] * data[i - width * 4] + - kernel[2] * data[i - width * 4 + 4] + - kernel[3] * data[i - 4] + - kernel[4] * data[i] + - kernel[5] * data[i + 4] + - kernel[6] * data[i + width * 4 - 4] + - kernel[7] * data[i + width * 4] + - kernel[8] * data[i + width * 4 + 4] - ) / 1 - } - data[(y * width + x) * 4 + 3] = 255 - } - } - return image -} - -// 卷积核 - -// 全连接层, 输入全部特征队列, 输入网络深度 -function 全连接(arr, deep = 1) { - let list = [] - for (let i = 0; i < arr.length; i++) { - list.push(arr[i]) - } - - for (let i = 0; i < deep; i++) { - - } -} \ No newline at end of file diff --git a/widgets/matrix.js b/widgets/matrix.js index 33ec5b1..6ec8503 100644 --- a/widgets/matrix.js +++ b/widgets/matrix.js @@ -23,9 +23,6 @@ export default class { this.element.appendChild(el) } } - //HTMLElement.prototype.__defineGetter__("currentStyle", function () { - // return this.ownerDocument.defaultView.getComputedStyle(this, null); - //}); } setItem(x, y, value) { let color = `rgba(${value}, ${value}, ${value}, .8)`