清理
This commit is contained in:
parent
94a203427f
commit
9eb6b942f1
17
README.md
17
README.md
@ -1,18 +1,7 @@
|
||||
# sakuya
|
||||
你的智慧分身
|
||||
|
||||
1. 确立目标本质
|
||||
2. 模拟环境与规则
|
||||
3. 基本条件
|
||||
1. 探寻变化规律, 规律即因果律
|
||||
2. 认知外在环境, 认知内在目的, 内外即别与自我
|
||||
3. 自我之存在, 自我之效用, 即为天命
|
||||
|
||||
实施:
|
||||
1. 智力问题通用方案基础
|
||||
2. 工具使用控制规则
|
||||
3. 修正控制
|
||||
4. 逻辑判断
|
||||
|
||||
例:
|
||||
1. 要求实现某行为结果
|
||||
2. 实施逻辑的组构
|
||||
3. 实施条件的采集
|
||||
4. 实施过程的模拟
|
||||
|
@ -26,6 +26,7 @@
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<header style="display: flex;">
|
||||
<card>
|
||||
<h2>基因列表</h2>
|
||||
<ul>
|
||||
@ -63,12 +64,8 @@
|
||||
</li>
|
||||
</ul>
|
||||
</card>
|
||||
</header>
|
||||
|
||||
<ul>
|
||||
<li>遗传迭代:正确基因构建保留</li>
|
||||
<li>行动测试:具有自我行动力和获取外界反馈</li>
|
||||
<li>输入大量语言语料, 对应目标理解耦</li>
|
||||
</ul>
|
||||
<script type="module" src="/main.js"></script>
|
||||
</body>
|
||||
|
||||
|
100
main.js
100
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. 输入另一张图, 排除所有不同激活的
|
||||
|
@ -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",
|
||||
|
@ -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()
|
@ -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++) {
|
||||
|
||||
}
|
||||
}
|
@ -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)`
|
||||
|
Loading…
Reference in New Issue
Block a user