This commit is contained in:
2024-08-11 20:04:07 +08:00
parent 94a203427f
commit 9eb6b942f1
7 changed files with 46 additions and 244 deletions

View File

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

View File

@ -26,49 +26,46 @@
</style>
<body>
<card>
<h2>基因列表</h2>
<ul>
<li>101010</li>
<li>101010</li>
<li>101010</li>
<li>101010</li>
</ul>
</card>
<card>
<h2>统计曲线</h2>
<ul>
<li>101010</li>
<li>101010</li>
<li>101010</li>
<li>101010</li>
</ul>
</card>
<card>
<h2>I/O 输入数据/允许读取/接口触点</h2>
<ul>
<li>101010</li>
<li>101010</li>
<li>101010</li>
<li>101010</li>
</ul>
</card>
<card>
<h2>I/O 允许调用 | IO结构树</h2>
<ul>
<li>fs</li>
<li>net</li>
<li>input
type: text image video voice
</li>
</ul>
</card>
<header style="display: flex;">
<card>
<h2>基因列表</h2>
<ul>
<li>101010</li>
<li>101010</li>
<li>101010</li>
<li>101010</li>
</ul>
</card>
<card>
<h2>统计曲线</h2>
<ul>
<li>101010</li>
<li>101010</li>
<li>101010</li>
<li>101010</li>
</ul>
</card>
<card>
<h2>I/O 输入数据/允许读取/接口触点</h2>
<ul>
<li>101010</li>
<li>101010</li>
<li>101010</li>
<li>101010</li>
</ul>
</card>
<card>
<h2>I/O 允许调用 | IO结构树</h2>
<ul>
<li>fs</li>
<li>net</li>
<li>input
type: text image video voice
</li>
</ul>
</card>
</header>
<ul>
<li>遗传迭代:正确基因构建保留</li>
<li>行动测试:具有自我行动力和获取外界反馈</li>
<li>输入大量语言语料, 对应目标理解耦</li>
</ul>
<script type="module" src="/main.js"></script>
</body>

100
main.js
View File

@ -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. 输入另一张图, 排除所有不同激活的

View File

@ -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",

View File

@ -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()

View File

@ -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++) {
}
}

View File

@ -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)`