提交 7110db47 编写于 作者: W wangqun

[change]update paddleJS construct

[change]update paddleJS construct
上级 cbeff2b5
# PaddleJS Examples
百度PaddleJS使用现成的 JavaScript 模型或转换 Paddle 模型以在浏览器中运行。
## 演示
目前Web项目运行TinyYolo模型可以达到30ms以内,对于一般的实时场景已经足够应对。
### 模块化
## 浏览器覆盖面
* PC: Chrome
* Mac: Chrome
* Android: Baidu App and QQ Browser
## 构建部署
```bash
cd web # 进入根目录
npm i # 安装依赖
mkdir dist # 创建资源目录
cd dist # 进入资源目录
git clone https://github.com/DerekYangMing/Paddle-Web-Models.git # 获取模型
mv Paddle-Web-Models/separablemodel . # 移动模型到制定地点
cd .. # 返回根目录
npm run tinyYolo # 启动 tinyYolo 在线推理服务
```
## 如何预览 demo
1. 在浏览器中打开url: https://localhost:8123/
2. 点击【开始检测】按钮。
3. 将人脸对准摄像头,没有问题的话,可以正常检测到人脸。
## 效果
![image](./tinyYolo/demoshow.png)
# PaddleJS Examples
百度PaddleJS使用现成的 JavaScript 模型或转换 Paddle 模型以在浏览器中运行。
## 演示
目前Web项目运行TinyYolo模型可以达到30ms以内,对于一般的实时场景已经足够应对。
### 模块化
## 浏览器覆盖面
* PC: Chrome
* Mac: Chrome
* Android: Baidu App and QQ Browser
## 构建部署
```bash
cd web # 进入根目录
npm i # 安装依赖
mkdir dist # 创建资源目录
cd dist # 进入资源目录
git clone https://github.com/DerekYangMing/Paddle-Web-Models.git # 获取模型
mv Paddle-Web-Models/separablemodel . # 移动模型到制定地点
cd .. # 返回根目录
npm run tinyYolo # 启动 tinyYolo 在线推理服务
```
## 如何预览 demo
1. 在浏览器中打开url: https://localhost:8123/
2. 点击【开始检测】按钮。
3. 将人脸对准摄像头,没有问题的话,可以正常检测到人脸。
## 效果
![image](./tinyYolo/demoshow.png)
import 'babel-polyfill';
import Paddle from '../../src/paddle/paddle';
import IO from '../../src/feed/imageFeed';
import Utils from '../../src/utils/utils';
// 获取map表
import Map from '../../test/data/map';
/**
* @file model demo 入口文件
* @author wangqun@baidu.com
*
*/
// 模型feed数据
const feedShape = {
'608': {
fw: 608,
fh: 608
},
'320': {
fw: 320,
fh: 320
},
'320fused': {
fw: 320,
fh: 320
},
'separate': {
fw: 320,
fh: 320
}
};
const modelType = 'separate';
const {fw, fh} = feedShape[modelType];
// 统计参数
let loaded = false;
let model = {};
window.statistic = [];
async function run(input) {
// const input = document.getElementById('mobilenet');
const io = new IO();
let feed = io.process({
input: input,
params: {
targetShape: [1, 3, fh, fw], // 目标形状 为了兼容之前的逻辑所以改个名
scale: 256, // 缩放尺寸
width: 224, height: 224, // 压缩宽高
shape: [3, 224, 224], // 预设tensor形状
mean: [0.485, 0.456, 0.406], // 预设期望
std: [0.229, 0.224, 0.225] // 预设方差
}});
console.dir(['feed', feed]);
const path = 'model/huangfan';
if (!loaded) {
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: 'model.json', // 主文件
};
loaded = true;
const paddle = new Paddle({
urlConf: MODEL_CONFIG,
options: {
multipart: false,
dataType: 'json'
}
});
model = await paddle.load();
}
let inst = model.execute({
input: feed
});
// 其实这里应该有个fetch的执行调用或者fetch的输出
let result = await inst.read();
console.dir(['result', result]);
let maxItem = Utils.getMaxItem(result);
document.getElementById('txt').innerHTML = Map['' + maxItem.index];
console.log('识别出的结果是' + Map['' + maxItem.index]);
// console.dir(['每个op耗时', window.statistic]);
// let total = statistic.reduce((all, cur) => {
// return all + cur.runTime;
// }, 0);
// console.log('op total = ' + total);
}
var image = '';
function selectImage(file) {
if (!file.files || !file.files[0]) {
return;
}
let reader = new FileReader();
reader.onload = function (evt) {
let img = document.getElementById('image');
img.src = evt.target.result;
img.onload = function () {
run(img);
};
image = evt.target.result;
};
reader.readAsDataURL(file.files[0]);
}
// selectImage
document.getElementById('uploadImg').onchange = function () {
selectImage(this);
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>paddle web demo</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
</head>
<body>
<img id="image" src="https://m.baidu.com/se/static/img/iphone/logo.png" style="max-width: 100%;">
<input type="file" id="uploadImg">
<div id="txt"></div>
<script src="index.es6"></script>
</body>
</html>
\ No newline at end of file
import 'babel-polyfill';
import Paddle from '../../src/paddle/paddle';
import IO from '../../src/feed/imageFeed';
/**
* @file model demo mnist 入口文件
* @author wangqun@baidu.com
*
*/
const pic = document.getElementById('pic');
const io = new IO();
let model = {};
async function run() {
let feed = io.process({
input: pic,
params: {
targetShape: [1, 3, 320, 320], // 目标形状 为了兼容之前的逻辑所以改个名
scale: 256, // 缩放尺寸
width: 224, height: 224, // 压缩宽高
shape: [3, 224, 224], // 预设tensor形状
mean: [0.485, 0.456, 0.406], // 预设期望
std: [0.229, 0.224, 0.225] // 预设方差
}});
console.dir(['feed', feed]);
const path = 'model/mnist';
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: 'model.json', // 主文件
};
const paddle = new Paddle({
urlConf: MODEL_CONFIG,
options: {
multipart: false,
dataType: 'json'
}
});
model = await paddle.load();
let inst = model.execute({
input: feed
});
// 其实这里应该有个fetch的执行调用或者fetch的输出
let result = await inst.read();
// let inst = model.execute({input: cat});
// let res = inst.read();
console.dir(['result', result]);
// var fileDownload = require('js-file-download');
// fileDownload(res, 'result.csv');
}
run();
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>paddle web demo</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
</head>
<body>
<div>
<img id="pic" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAcABwBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APn+vTPDHwP8TeJ9DtdXiuLCzt7kbo0uWcOU7NgKRgjkc81i+O/hvrPgW8xco1zp7ELHfIm1HYqCRjJIPUc9cHFcbSgEnABJ9BXaafH8Rrrw3NpdjBrkmjohLQLE/l7c5OOPUHgV6Fcw3um/sxXNt4hZo7qW5X7FDdLtlRfOU7QG5zgSH/dPpXhFel/Bzxj4a8H6vfzeILZy86ILe6WLzPI27i3HUZ+XkA9PQ16Pc/Hfw7pM91LaXusa20wDRxSQRQww9eAdob35DfWuNg+Ny67Dfab430SDUNLuQxjW2UK8BwcAZPPOPmyCOvPSvH6KKKK//9k=" >
</div>
<script src="index.es6"></script>
</body>
</html>
import 'babel-polyfill';
import Paddle from '../../src/paddle/paddle';
import IO from '../../src/feed/imageFeed';
import Utils from '../../src/utils/utils';
// 获取map表
import Map from '../../test/data/map';
/**
* @file model demo 入口文件
* @author wangqun@baidu.com
*
*/
// 模型feed数据
const feedShape = {
'608': {
fw: 608,
fh: 608
},
'320': {
fw: 320,
fh: 320
},
'320fused': {
fw: 320,
fh: 320
},
'separate': {
fw: 244,
fh: 244
}
};
const modelType = 'separate';
const {fw, fh} = feedShape[modelType];
// 统计参数
let loaded = false;
let model = {};
window.statistic = [];
async function run(input) {
// const input = document.getElementById('mobilenet');
const io = new IO();
let feed = io.process({
input: input,
params: {
targetShape: [1, 3, fh, fw], // 目标形状 为了兼容之前的逻辑所以改个名
scale: 256, // 缩放尺寸
width: 224, height: 224, // 压缩宽高
shape: [3, 224, 224], // 预设tensor形状
mean: [0.485, 0.456, 0.406], // 预设期望
std: [0.229, 0.224, 0.225] // 预设方差
}});
console.log('feed', feed);
const path = 'model/mobileNet';
if (!loaded) {
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: 'model.json', // 主文件
};
loaded = true;
const paddle = new Paddle({
urlConf: MODEL_CONFIG,
options: {
multipart: true,
dataType: 'json'
}
});
model = await paddle.load();
}
let inst = model.execute({
input: feed
});
// 其实这里应该有个fetch的执行调用或者fetch的输出
let result = await inst.read();
console.dir(['result', result]);
// let maxItem = Utils.getMaxItem(result);
// document.getElementById('txt').innerHTML = Map['' + maxItem.index];
// console.log('识别出的结果是' + Map['' + maxItem.index]);
// console.dir(['每个op耗时', window.statistic]);
// let total = statistic.reduce((all, cur) => {
// return all + cur.runTime;
// }, 0);
// console.log('op total = ' + total);
};
var image = '';
function selectImage(file) {
if (!file.files || !file.files[0]) {
return;
}
let reader = new FileReader();
reader.onload = function (evt) {
let img = document.getElementById('image');
img.src = evt.target.result;
img.onload = function() {
run(img);
};
image = evt.target.result;
}
reader.readAsDataURL(file.files[0]);
}
// selectImage
document.getElementById("uploadImg").onchange = function () {
selectImage(this);
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>paddle web demo</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
</head>
<body>
<img id="image" src="https://m.baidu.com/se/static/img/iphone/logo.png" style="max-width: 100%;">
<input type="file" id="uploadImg">
<div id="txt"></div>
<script src="index.es6"></script>
</body>
</html>
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
export default class Camera {
constructor(option) {
this.video = option.videoDom;
this.videoOption = option.videoOption;
}
// 访问用户媒体设备的兼容方法
getUserMedia(constraints, success, error) {
if (navigator.mediaDevices.getUserMedia) {
// 最新的标准API
navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);
}
else if (navigator.webkitGetUserMedia) {
// webkit核心浏览器
navigator.webkitGetUserMedia(constraints, success, error);
}
else if (navigator.mozGetUserMedia) {
// firfox浏览器
navigator.mozGetUserMedia(constraints, success, error);
}
else if (navigator.getUserMedia) {
// 旧版API
navigator.getUserMedia(constraints, success, error);
}
}
success(stream) {
// 兼容webkit核心浏览器
let CompatibleURL = window.URL || window.webkitURL;
// 将视频流设置为video元素的源
// video.src = CompatibleURL.createObjectURL(stream);
this.video.srcObject = stream;
this.video.play();
}
error(error) {
console.log(`访问用户媒体设备失败${error.name}, ${error.message}`);
}
run() {
if (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.mediaDevices.getUserMedia) {
// 调用用户媒体设备, 访问摄像头
this.getUserMedia(this.videoOption, this.success.bind(this), this.error);
}
else {
alert('不支持访问用户媒体');
}
}
get curVideo() {
return this.video;
}
}
import 'babel-polyfill';
import Graph from '../../src/executor/loader';
import IO from '../../src/feed/imageFeed';
import Logger from '../../tools/logger';
window.log = new Logger();
// 统计参数
window.badCases = [];
// import Utils from '../src/utils/utils';
// 获取map表
// import Map from '../test/data/map';
// import demoPic from './bbt1.jpg';
// import demoPic2 from './bbt2.jpg';
// import demoPic3 from './bbt3.jpg';
// import demoPic4 from './bbt4.jpg';
// import demoPic5 from './bbt5.jpg';
// 后处理测试用例
// let tempPic = [demoPic, demoPic2, demoPic3, demoPic4, demoPic5];
/**
* @file model demo 入口文件
* @author wangqun@baidu.com
*
*/
// 模型输出shape
const outputShapes = {
'608': {
from: [19, 19, 25, 1],
to: [19, 19, 5, 5]
},
'320': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
},
'320fused': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
}
};
// 模型feed数据
const feedShape = {
'608': {
fw: 608,
fh: 608
},
'320': {
fw: 320,
fh: 320
},
'320fused': {
fw: 320,
fh: 320
}
};
// 模型路径
const modelPath = {
'608': 'faceModel',
'320': 'facemodel320',
'320fused': 'facemodelfused'
};
const modelType = '320fused';
const path = modelPath[modelType];
// 统计参数
let loaded = false;
let model = {};
window.statistic = [];
const {fw, fh} = feedShape[modelType];
// 第一遍执行比较慢 所以预热一下
async function preheat() {
const io = new IO();
let feed = io.process({
input: video,
params: {
gapFillWith: '#000', // 缩放后用什么填充不足方形部分
targetSize: {
height: fw,
width: fh
},
targetShape: [1, 3, fh, fw], // 目标形状 为了兼容之前的逻辑所以改个名
// shape: [3, 608, 608], // 预设tensor形状
mean: [117.001, 114.697, 97.404], // 预设期望
// std: [0.229, 0.224, 0.225] // 预设方差
}
});
const MODEL_URL = `/${path}/model.json`;
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: 'model.json', // 主文件
};
loaded = true;
const graphModel = new Graph();
log.start('加载模型');
model = await graphModel.loadGraphModel(MODEL_CONFIG, {
multipart: true,
dataType: 'binary',
binaryOption: {
fileCount: 1, // 切成了多少文件
getFileName(i) { // 获取第i个文件的名称
return 'chunk_0.dat';
}
},
feed
});
log.end('加载模型');
let inst = model.execute({
input: feed
});
};
async function run(input) {
// const input = document.getElementById('mobilenet');
log.start('总耗时');
const io = new IO();
log.start('预处理');
let feed = io.process({
input: input,
params: {
gapFillWith: '#000', // 缩放后用什么填充不足方形部分
targetSize: {
height: fw,
width: fh
},
targetShape: [1, 3, fh, fw], // 目标形状 为了兼容之前的逻辑所以改个名
// shape: [3, 608, 608], // 预设tensor形状
mean: [117.001, 114.697, 97.404], // 预设期望
// std: [0.229, 0.224, 0.225] // 预设方差
}
});
log.end('预处理');
if (!loaded) {
const MODEL_URL = `/${path}/model.json`;
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: 'model.json', // 主文件
};
loaded = true;
const graphModel = new Graph();
log.start('加载模型');
model = await graphModel.loadGraphModel(MODEL_CONFIG, {
multipart: true,
dataType: 'binary',
binaryOption: {
fileCount: 1, // 切成了多少文件
getFileName(i) { // 获取第i个文件的名称
return 'chunk_0.dat';
}
},
feed
});
log.end('加载模型');
}
log.start('运行耗时');
let inst = model.execute({
input: feed
});
// 其实这里应该有个fetch的执行调用或者fetch的输出
let result = await inst.read();
log.end('后处理-读取数据');
// console.dir(['result', result]);
log.start('后处理-形状调整');
const newData = [];
let newIndex = -1;
const [w, h, c, b] = outputShapes[modelType].from;
// c channel
for (let i = 0; i < c; i++) {
// height channel
for (let j = 0; j < h; j++) {
// width channel
for (let k = 0; k < w; k++) {
// position: (0, 0, 0, 0)
const index = j * (c * h) + k * c + i;
// const index = j * (i * k) + k * i + i;
newData[++newIndex] = result[index];
}
}
}
log.end('后处理-形状调整');
log.start('后处理-画框');
testRun(newData, input);
log.end('后处理-画框');
log.end('后处理');
log.end('总耗时');
};
var image = '';
function selectImage(file) {
if (!file.files || !file.files[0]) {
return;
}
let reader = new FileReader();
reader.onload = function (evt) {
let img = document.getElementById('image');
img.src = evt.target.result;
img.onload = function() {
log.during('每次执行的时间间隔');
run(img);
};
image = evt.target.result;
}
reader.readAsDataURL(file.files[0]);
};
// selectImage
document.getElementById("uploadImg").onchange = function () {
selectImage(this);
};
/* 后处理图片 by zhangmiao06 */
let preTestRun = (index) => {
let img = document.getElementById('image');
img.src = tempPic[index];
img.onload = function() {
testRun(testOutput.data[index], img);
};
};
let testRun = (data, img) => {
// console.log('ori', data);
const {from, to} = outputShapes[modelType];
// let shape = [1, 25, 19, 19];
let shape = [].concat(from).reverse();
// 1.从一维数组到1*25*19*19
let formatData = reshapeMany({
data: data,
reshapeShape: shape
});
// console.log('一维到多维', formatData);
// 2.从1*25*19*19 到 19*19*25*1
let formatData2 = transpose({
data: formatData,
shape: shape,
transposeShape: [2, 3, 1, 0]
});
// console.log('transpose', formatData2);
// 3.从19*19*25*1到19*19*5*5
let formatData3 = reshape({
data: formatData2,
shape: from,
reshapeShape: to
});
// console.log('reshape', formatData3);
// 4.运算
let finalData = handleFinal(formatData3, shape, img);
// console.log('final', finalData);
// 5.处理画布
// handleCanvas(finalData, img);
handleDiv(finalData, img);
};
// sigmoid
let sigmoid = (x) => {
if (x < -100) {
return 0.0;
}
return 1 / (1 + Math.exp(-x));
};
// transpose
let transpose = (data) => {
let shape = data.shape;
let transposeShape = data.transposeShape;
let formatData = data.data;
let formatData2 = [];
for(let n = 0; n < shape[transposeShape[0]]; n++) {
let nData = [];
for(let c = 0; c < shape[transposeShape[1]]; c++) {
let cData = [];
for(let row = 0; row < shape[transposeShape[2]]; row++) {
let rowData = [];
for(let col = 0; col < shape[transposeShape[3]]; col++) {
let tempArr = [n, c, row, col];
let newN = n;
let newC = c;
let newW = row;
let newH = col;
transposeShape.forEach((item, index)=> {
switch(item) {
case 0:
newN = tempArr[index];
break;
case 1:
newC = tempArr[index];
break;
case 2:
newW = tempArr[index];
break;
case 3:
newH = tempArr[index];
}
});
rowData.push(formatData[newN][newC][newW][newH]);
}
cData.push(rowData);
}
nData.push(cData);
}
formatData2.push(nData);
}
return formatData2;
};
// reshape
let reshape = (data) =>{
let formatData2 = data.data;
let shape = data.shape;
let reshapeShape = data.reshapeShape;
// 1.变成一维
let tempData = reshapeOne({
data: formatData2,
shape: shape
});
// 2.变成多维
let formatData3 = reshapeMany({
data: tempData,
reshapeShape: reshapeShape
});
return formatData3;
};
// 变成一维
let reshapeOne = (data) => {
let formatData2 = data.data;
let shape = data.shape;
let tempData = [];
for(let n = 0; n < shape[0]; n++) {
for(let c = 0; c < shape[1]; c++) {
for(let row = 0; row < shape[2]; row++) {
for(let col = 0; col < shape[3]; col++) {
tempData.push(formatData2[n][c][row][col]);
}
}
}
}
return tempData;
};
// 变成多维
let reshapeMany = (data) => {
let tempData = data.data;
let reshapeShape = data.reshapeShape;
let formatData3 = [];
for(let n = 0; n < reshapeShape[0]; n++) {
let nData = [];
for(let c = 0; c < reshapeShape[1]; c++) {
let cData = [];
for(let row = 0; row < reshapeShape[2]; row++) {
let rowData = [];
for(let col = 0; col < reshapeShape[3]; col++) {
let tempN = n * reshapeShape[1] * reshapeShape[2] * reshapeShape[3];
let tempC = c * reshapeShape[2] * reshapeShape[3];
let tempRow = row * reshapeShape[3];
rowData.push(tempData[tempN + tempC + tempRow + col]);
}
cData.push(rowData);
}
nData.push(cData);
}
formatData3.push(nData);
}
return formatData3;
};
let calSize = (img) => {
let w1 = img.width;
let h1 = img.height;
let wh1 = Math.max(w1, h1);
// let factor = 608.0 / wh1;
let factor = fw / wh1;
let width = Math.round(w1 * factor);
let height = Math.round(h1 * factor);
return [w1, h1, width, height];
};
// 处理运算
let handleFinal = (formatData3, shape, img) => {
let finalData = [];
let c = shape[2];
let [w1, h1, width, height] = calSize(img);
let factorX = Math.max(width, height) / width;
let factorY = Math.max(width, height) / height;
let maxProb = 0.0;
let anchors = [[1.603231, 2.094468], [6.041143, 7.080126], [2.882459, 3.518061], [4.266906, 5.178857], [9.041765, 10.66308]];
for(let i = 0; i < shape[2]; i++) {
for(let j = 0; j < shape[3]; j++) {
for(let k = 0; k < anchors.length; k++) {
let [a1, a2, a3, a4, prob] = formatData3[i][j][k];
prob = sigmoid(prob);
if (prob > maxProb && prob >= 0.5) {
let ctx = (j + sigmoid(a1)) / c * factorX;
let cty = (i + sigmoid(a2)) / c * factorY;
let col = Math.exp(a3) * anchors[k][0] / c * factorX;
let row = Math.exp(a4) * anchors[k][1] / c * factorY;
let x = (ctx - (col / 2));
let y = (cty - (row / 2));
finalData.push([x * w1, y * h1, col * w1, row * h1, prob]);
}
}
}
}
return finalData;
};
// 处理画布
let handleCanvas = (finalData, img) => {
let myCanvas = document.getElementById('myCanvas');
let [w1, h1, width, height] = calSize(img);
myCanvas.width = w1;
myCanvas.height = h1;
let ctx = myCanvas.getContext('2d');
ctx.drawImage(img, 0, 0, w1, h1);
finalData.forEach((demoArr,index) => {
let [demoLeft, demoTop, demoWidth, demoHeight, prob] = demoArr;
ctx.beginPath();
ctx.strokeStyle = 'red';
ctx.moveTo(demoLeft, demoTop);
ctx.lineTo(demoLeft + demoWidth, demoTop);
ctx.lineTo(demoLeft + demoWidth, demoTop + demoHeight);
ctx.lineTo(demoLeft, demoTop + demoHeight);
ctx.closePath();
ctx.stroke();
});
};
let handleDiv = (finalData, img) => {
if (finalData.length < 1) {
return false;
}
let myCanvas = document.getElementById('myDiv');
let maxIndex = 0;
if (finalData.length > 1) {
for(let i = 1; i < finalData.length; i++) {
if (finalData[i].prob > finalData[maxIndex].prob) {
maxIndex = i;
}
}
}
let [demoLeft, demoTop, demoWidth, demoHeight, prob] = finalData[maxIndex];
myCanvas.style.width = demoWidth;
myCanvas.style.height = demoHeight;
myCanvas.style.left = demoLeft;
myCanvas.style.top = demoTop;
};
// preTestRun(0);
// run(document.getElementById('pic'));
{data: [[0.15154874324798584, 0.7004461884498596, 1.9244673252105713, 1.7031919956207275, -0.1572626382112503, 0.10221858322620392, 0.8415390849113464, 0.8941440582275391, -0.20608527958393097, 0.02343614399433136, 0.3400140404701233, 0.2612961530685425, -0.07711604237556458, -0.05145762860774994, 0.8253234624862671, -0.5068359971046448, -0.438709020614624, 1.3538473844528198, -0.411781370639801, 0.7367337346076965, -0.6464237570762634, 0.2503781318664551, 1.6185157299041748, -0.43941056728363037, -0.41030019521713257, 0.5757719278335571, 0.7398046255111694, -0.45549148321151733, -1.6449209451675415, 0.1958436518907547, -0.23252026736736298, -1.149245023727417, -1.0781158208847046, 0.023489177227020264, -0.8860732913017273, -1.0069295167922974, 1.1068224906921387, -0.7724794745445251, 0.8241539001464844, -0.07509122788906097, -0.36653977632522583, 0.7399556040763855, -1.0142699480056763, 0.9260427951812744, 1.8324633836746216, -1.0809671878814697, -0.9182005524635315, -0.8914744257926941, 1.658098578453064, -1.4400584697723389, -0.3454756736755371, 0.7657572627067566, -0.2078886479139328, -0.7958843111991882, -1.0258331298828125, -0.3515070080757141, -1.20012629032135, 0.24339236319065094, 0.2744670510292053, 0.7119646668434143, 1.0503349304199219, -0.8830623030662537, 1.2905373573303223, 1.9741994142532349, -1.128773808479309, -0.6885120272636414, -0.6583386659622192, 0.5773378610610962, -1.4847533702850342, -1.0413122177124023, -0.1838526576757431, -0.46457338333129883, -0.930358350276947, -0.783302903175354, -0.09846626222133636, -1.5416697263717651, -0.018591955304145813, -0.06175805628299713, 0.2656783163547516, -0.009408190846443176, -0.7570173144340515, -0.16794191300868988, 0.21844911575317383, 0.24409547448158264, -0.46044909954071045, -0.8912389874458313, -0.4183444380760193, -0.18428920209407806, -1.0576272010803223, -0.8179274201393127, -0.20275308191776276, -0.5870973467826843, -0.5657418370246887, 0.3583536148071289, -1.3854137659072876, 0.7564806342124939, 0.6706324219703674, -0.12342803180217743, -0.1679038554430008, 0.4188109040260315, 0.6101473569869995, 0.2556992471218109, 0.0764576718211174, 0.06858830899000168, -0.2110549360513687, -0.06861458718776703, -0.21273921430110931, -0.16908793151378632, -0.13941951096057892, -0.35963553190231323, -0.2620682120323181, 0.44924455881118774, -0.22967474162578583, -1.8659071922302246, 1.3379337787628174, 0.6757092475891113, -0.8104382753372192, -0.8623402714729309, 0.5366103649139404, 0.6582223176956177, -0.2011442333459854, 0.17239893972873688, 0.00974448025226593, 0.14598889648914337, -0.2687322497367859, -0.1982598751783371, 0.5283060669898987, 0.6468388438224792, 0.11195166409015656, -0.17440591752529144, 0.5583785176277161, -0.4340451955795288, -2.005687713623047, 1.0519739389419556, 0.6837559938430786, -0.044648975133895874, 0.17980311810970306, 0.2333812415599823, 0.12061526626348495, 0.4256948232650757, -0.6644322276115417, -0.24277766048908234, -0.2580620050430298, -0.34719884395599365, -0.26872867345809937, -0.15799076855182648, -0.11666224896907806, -0.031684890389442444, -0.8223844766616821, -0.7008188962936401, -0.34190720319747925, -1.683214783668518, 0.8423498272895813, 0.40304917097091675, 0.34337007999420166, 0.5603617429733276, 0.7632795572280884, 0.40363776683807373, -0.06434224545955658, -0.3772360682487488, -0.12853099405765533, -0.41878700256347656, -0.4212501645088196, -0.006202518939971924, -0.3897743821144104, -0.05296735465526581, 0.5199002623558044, -1.0662624835968018, -1.315722942352295, -0.4162673354148865, -1.153676152229309, 0.7548810243606567, 0.6982075572013855, 0.9418397545814514, 0.8025137782096863, 0.6581078171730042, 0.8478690981864929, -0.05468548834323883, -0.5965131521224976, -0.23056788742542267, -0.677140474319458, -0.14473016560077667, 0.17270515859127045, -0.18306221067905426, 0.34445643424987793, 0.9945117831230164, -0.46706855297088623, -0.7626141309738159, -0.055080875754356384, -1.0774939060211182, 0.7084094882011414, 0.38952961564064026, 0.44939619302749634, 0.37738335132598877, -0.5205221176147461, -0.5128703713417053, -0.38666170835494995, -0.9888799786567688, -0.4334718585014343, -0.5289381146430969, -0.4425583481788635, -0.47525644302368164, -0.0519481897354126, -0.12164516746997833, 0.034499600529670715, -0.14324556291103363, -0.6657871007919312, -0.8150444626808167, -1.225278615951538, 1.3606750965118408, 0.49527835845947266, 0.19594956934452057, -0.035457924008369446, -0.5909809470176697, -0.5742961168289185, -0.05672229826450348, -0.3203808665275574, -0.2516825199127197, -0.4079280495643616, -0.21532653272151947, -0.27782392501831055, -0.19965200126171112, -0.13314788043498993, -0.22539286315441132, -0.12164224684238434, -0.5907506942749023, -1.6453418731689453, -1.7950081825256348, 1.3655693531036377, 0.41387075185775757, 0.263724148273468, 0.25400876998901367, 0.2562503218650818, 0.18863005936145782, 0.17586959898471832, 0.13377733528614044, 0.18037189543247223, 0.16135306656360626, 0.20027156174182892, 0.22180671989917755, 0.07855381071567535, 0.10275132954120636, 0.1026744395494461, 0.13596488535404205, -0.3118544816970825, -1.746912956237793, -2.1010308265686035, 1.0659338235855103, 0.1590159684419632, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, -0.3295748233795166, -1.7046756744384766, -2.1014914512634277, 1.0659338235855103, 0.1590159684419632, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, -0.3295748233795166, -1.7046756744384766, -2.1014914512634277, 1.0659338235855103, 0.1590159684419632, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, 0.1255211979150772, -0.3295748233795166, -1.7046756744384766, -2.1014914512634277, 1.075537085533142, 0.10442812740802765, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, 0.06855829060077667, -0.40801477432250977, -1.7334656715393066, -2.178567886352539, 1.127114176750183, -0.03245525062084198, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.10049073398113251, -0.09522543847560883, -1.1392707824707031, -2.2118706703186035, 0.14562274515628815, -0.5479857921600342, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5800790786743164, -0.5850855112075806, -1.5237393379211426, -2.053475856781006, 0.34176307916641235, 1.366079330444336, 0.017644628882408142, -0.31703150272369385, 0.4232872724533081, 1.8480979204177856, 0.6034345626831055, -0.21007968485355377, 0.4016507863998413, 0.5472525358200073, 0.4369739294052124, 0.2111571878194809, 1.14470374584198, 2.0458006858825684, 2.557417869567871, 1.9112904071807861, 1.3133419752120972, 1.5347739458084106, 0.962992250919342, 0.38407349586486816, 0.7503437995910645, -0.3967885971069336, -0.5738704204559326, 0.14786647260189056, 0.8659243583679199, 0.38957667350769043, 0.38101303577423096, 0.6255091428756714, -0.07794977724552155, -0.6543418169021606, 0.18626819550991058, 0.12932102382183075, 1.4417364597320557, 3.4158897399902344, 1.6016004085540771, -0.29149359464645386, -1.083726406097412, -1.1966941356658936, -0.2678937315940857, -0.35930967330932617, 0.45640814304351807, 2.223094940185547, 1.094281792640686, 0.8790024518966675, 1.9855233430862427, 2.9325947761535645, 0.6295132040977478, 0.17157499492168427, 1.9702318906784058, 1.5113786458969116, 0.3766382336616516, -0.36402028799057007, -0.38921403884887695, 0.5636956691741943, -0.09938439726829529, -0.27893495559692383, -0.6564173698425293, -0.47693586349487305, -0.5081027746200562, -1.2795222997665405, -1.2466195821762085, 0.5471397638320923, 0.7986192107200623, -1.5511877536773682, -2.477057933807373, -0.4022960066795349, -1.2698009014129639, -2.759981870651245, -2.1148693561553955, -0.9350203275680542, -1.0192503929138184, -0.6473525166511536, -0.8930485248565674, -0.34469884634017944, -0.056432902812957764, -0.2628520131111145, -0.08511050045490265, 0.09445039927959442, -1.101925015449524, -1.582269310951233, -0.8331878185272217, -0.5945929884910583, -0.8961397409439087, -1.1360100507736206, -0.2626158595085144, -0.7146312594413757, -2.093461751937866, -1.7504795789718628, -0.3493085503578186, -1.0169380903244019, -1.0244503021240234, -0.8245197534561157, 0.03168968856334686, -0.2273528128862381, -0.4002193808555603, 0.035793617367744446, 0.5712549090385437, -0.5730022192001343, -0.5745187401771545, 0.024235188961029053, -0.03433437645435333, -0.16288752853870392, -0.5333379507064819, -0.21705420315265656, -0.21868984401226044, -0.12068168818950653, -0.3817642331123352, 0.26850664615631104, 0.05766431987285614, -0.3846510648727417, 0.017700716853141785, 0.3477499485015869, -0.1625967174768448, -0.31345105171203613, -0.7950692176818848, -0.4100356101989746, -0.03478768467903137, 0.263774037361145, 0.799644947052002, 0.4552679657936096, 0.4232340455055237, -0.15813295543193817, -0.28731751441955566, 0.19443656504154205, 0.362854540348053, -0.43403029441833496, -0.14868395030498505, -0.0901915431022644, 0.3119168281555176, -0.042732253670692444, -0.8763159513473511, -0.308232843875885, -0.42294299602508545, -0.6811189651489258, -0.6052007675170898, -0.18906907737255096, -0.5049957633018494, -0.1783156841993332, -0.8486374616622925, -1.7273138761520386, -1.7426904439926147, -0.8134540915489197, 0.03294922411441803, -0.07308278977870941, -0.6394140720367432, -0.2998396158218384, -0.6724801063537598, -0.544834554195404, -0.9109352827072144, -1.4375321865081787, -0.7438850402832031, -0.5605272650718689, -0.8194558024406433, -1.0050222873687744, -0.9435520172119141, -0.7216450572013855, -0.7712728977203369, -1.1164379119873047, -1.6959404945373535, -2.0318856239318848, -0.6960405707359314, -0.9782630205154419, -1.515786051750183, -1.1120482683181763, -0.8222742676734924, -0.800505518913269, -0.9153817892074585, -0.923224925994873, -1.0424538850784302, -0.8301479816436768, -0.8687794208526611, -0.7714989185333252, -0.8271204233169556, -0.9803484678268433, -0.6001254916191101, -0.5802774429321289, -0.826019287109375, -1.269165277481079, -1.3561700582504272, -0.4574517011642456, -0.6960176825523376, -1.1196253299713135, -0.9343605041503906, -0.8866441249847412, -1.0056239366531372, -1.6878200769424438, -1.3927639722824097, -0.41259247064590454, -0.9952270984649658, -1.070668339729309, -0.8705159425735474, -1.002685308456421, -1.2049199342727661, -1.4006569385528564, -0.7917671203613281, -0.6356751918792725, -0.9823729991912842, -1.0809170007705688, -1.0134605169296265, -0.3360884189605713, 0.14125508069992065, -0.6259541511535645, -1.3800203800201416, -1.490652084350586, -1.638524055480957, -1.434869647026062, -1.0069465637207031, -1.3770267963409424, -1.4877310991287231, -0.8940479755401611, -0.9134368896484375, -1.0933254957199097, -0.9761761426925659, -0.6520583629608154, -0.4636356830596924, -0.5898822546005249, -0.6990044116973877, -0.8834989666938782, -0.5294939875602722, -0.34269052743911743, -0.7459604144096375, -1.0781526565551758, -1.2172969579696655, -1.3075225353240967, -1.3140312433242798, -1.0073522329330444, -1.3108851909637451, -1.4607821702957153, -0.7915682792663574, -0.7689914107322693, -0.9063373804092407, -0.8963134288787842, -0.9058841466903687, -0.859721302986145, -0.7947321534156799, -0.8115534782409668, -0.9316732883453369, -0.9833776950836182, -0.9339646100997925, -0.8446594476699829, -0.8637835383415222, -0.9252537488937378, -0.88836669921875, -0.9051525592803955, -0.8987153768539429, -1.0226846933364868, -1.021229863166809, -0.8235833048820496, -0.8603785037994385, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -0.9961189031600952, -1.0171056985855103, -0.952299952507019, -0.8235833048820496, -0.8603785037994385, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -0.9961189031600952, -1.0171056985855103, -0.952299952507019, -0.8235833048820496, -0.8603785037994385, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -1.0500792264938354, -0.9961189031600952, -1.0171056985855103, -0.952299952507019, -1.0500545501708984, -1.1875507831573486, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.485998511314392, -1.4175556898117065, -1.4697524309158325, -1.2774128913879395, -1.7122910022735596, -1.6861664056777954, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9005199670791626, -1.9111050367355347, -1.595626950263977, -1.4829883575439453, -1.737371802330017, -1.9617434740066528, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0839860439300537, -2.0363776683807373, -1.6644892692565918, -1.6687276363372803, 0.07199060916900635, 0.12697014212608337, -0.048406973481178284, -0.17057856917381287, -0.09581878781318665, 0.009569436311721802, 0.03585226461291313, -0.040836259722709656, 0.009524479508399963, -0.061362236738204956, -0.09678375720977783, -0.0884932279586792, -0.04003351926803589, -0.314570814371109, -0.27361616492271423, -0.13156932592391968, -0.24550777673721313, -0.3139960765838623, -0.3079643249511719, -0.05328807234764099, -0.03414344787597656, -0.06702853739261627, -0.11233331263065338, -0.11916220188140869, -0.014771319925785065, -0.035518258810043335, -0.08382076025009155, -0.05796489119529724, 0.007956214249134064, -0.030503056943416595, -0.0995367169380188, -0.1398354172706604, -0.1467437744140625, 0.030093397945165634, -0.09181372821331024, -0.23548388481140137, -0.2641405463218689, -0.27873939275741577, -0.05379396677017212, -0.05750967562198639, 0.0997883602976799, 0.29547902941703796, -0.21442902088165283, -0.22796443104743958, 0.04542025923728943, 0.23080936074256897, -0.06298099458217621, 0.027468476444482803, 0.1285093128681183, 0.0013219043612480164, -0.1203995794057846, 0.10243749618530273, 0.34035560488700867, -0.030520692467689514, -0.08017735183238983, -0.0655680000782013, -0.11196404695510864, -0.13775472342967987, -0.10124093294143677, -0.008831173181533813, 0.1702277958393097, -0.11923567950725555, -0.15225425362586975, 0.11590812355279922, 0.28482669591903687, -0.1584683656692505, -0.16316884756088257, 0.025547780096530914, -0.05605928599834442, -0.1218564510345459, -0.024762064218521118, -0.050396353006362915, -0.13978803157806396, -0.04886043071746826, 0.008182525634765625, -0.1528531312942505, -0.13940823078155518, -0.1188589483499527, -0.12356522679328918, -0.00302916020154953, 0.08626948297023773, 0.02145625650882721, -0.019221410155296326, 0.04004644975066185, -0.04735472798347473, -0.1739645004272461, -0.11526374518871307, -0.09239247441291809, -0.14016658067703247, -0.19040992856025696, -0.2202494740486145, -0.17580193281173706, -0.11201390624046326, -0.10217821598052979, -0.27131205797195435, -0.048653364181518555, -0.07320769131183624, -0.12051112949848175, -0.1319998800754547, -0.16339194774627686, -0.13005290925502777, -0.04484853148460388, -0.021619290113449097, 0.05488879606127739, -0.09319046139717102, -0.13310189545154572, -0.1256909966468811, -0.212715744972229, -0.1824033260345459, -0.19127997756004333, -0.14012444019317627, -0.20932716131210327, -0.1832946240901947, -0.28412410616874695, -0.08566860854625702, -0.1584695726633072, -0.13191789388656616, -0.0785992443561554, -0.17017239332199097, -0.07029485702514648, 0.04949034005403519, 0.06537381559610367, 0.05478238686919212, -0.04919053614139557, -0.10798799991607666, -0.18554919958114624, -0.27604326605796814, -0.09981365501880646, -0.08382962644100189, -0.10885024070739746, -0.13904497027397156, -0.15232905745506287, -0.2379893660545349, -0.21002566814422607, -0.17356768250465393, -0.13258185982704163, -0.040212273597717285, 0.010734982788562775, 0.06674186140298843, 0.1297488808631897, 0.08435889333486557, 0.003158651292324066, -0.06666669249534607, -0.06490805745124817, -0.21916162967681885, -0.2651832699775696, -0.057371705770492554, -0.09443721175193787, -0.09074179828166962, -0.10289314389228821, -0.08262145519256592, -0.18713659048080444, -0.15580534934997559, -0.08290909230709076, -0.05456075072288513, -0.07844972610473633, -0.06297187507152557, -0.004282712936401367, 0.03042091429233551, -0.00549750030040741, -0.08180272579193115, -0.10475808382034302, -0.11808091402053833, -0.14273202419281006, -0.1597973108291626, -0.08409281075000763, -0.035768963396549225, -0.02789977192878723, -0.10683371126651764, -0.10067680478096008, -0.21038347482681274, -0.14282682538032532, -0.12972186505794525, -0.09724551439285278, -0.11552150547504425, -0.19482314586639404, -0.05791798233985901, -0.023927807807922363, -0.05680364370346069, -0.051284611225128174, -0.10501125454902649, -0.24370840191841125, -0.2337591052055359, -0.22085922956466675, -0.1565743386745453, -0.1055939793586731, -0.12133640050888062, -0.1875331997871399, -0.13928809762001038, -0.24165654182434082, -0.11640740931034088, -0.08697159588336945, -0.07406887412071228, -0.08293357491493225, -0.19849684834480286, -0.17239519953727722, -0.10602268576622009, -0.09053461253643036, -0.08809687197208405, -0.12892144918441772, -0.10334433615207672, -0.12560924887657166, -0.20477503538131714, -0.14521437883377075, -0.1387498676776886, -0.22842556238174438, -0.18212687969207764, -0.0965314656496048, -0.25882843136787415, -0.09622719883918762, 0.00941561907529831, -0.029871121048927307, -0.05404658615589142, -0.09011556208133698, -0.0931616872549057, -0.1000758558511734, -0.047482073307037354, -0.036924153566360474, -0.018465109169483185, 0.04973409324884415, 0.010980494320392609, 0.0025907084345817566, 0.0034281760454177856, -0.07007409632205963, -0.09541362524032593, -0.031627535820007324, -0.029561832547187805, -0.1779669225215912, -0.07426592707633972, 0.08561297506093979, 0.027606915682554245, 0.03078809753060341, 0.03657335788011551, 0.014265298843383789, 0.028087139129638672, 0.0228818878531456, 0.012366853654384613, -0.0028619468212127686, 0.03337547183036804, 0.035541657358407974, 0.03154081851243973, 0.04618742689490318, 0.03812006488442421, 0.02977985516190529, -0.035007014870643616, -0.03263349086046219, -0.14381970465183258, -0.03653458505868912, 0.09289474040269852, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, -0.017007917165756226, -0.023856163024902344, -0.1408299207687378, -0.03653458505868912, 0.09289474040269852, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, -0.017007917165756226, -0.023856163024902344, -0.1408299207687378, -0.03653458505868912, 0.09289474040269852, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, 0.05690861493349075, -0.017007917165756226, -0.023856163024902344, -0.1408299207687378, -0.040691494941711426, 0.12240423262119293, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.07934145629405975, 0.006836719810962677, -0.030458956956863403, -0.1832025647163391, -0.0002988353371620178, 0.08485159277915955, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.0677674412727356, 0.022931620478630066, -0.01768425852060318, -0.16990971565246582, -0.14679312705993652, -0.10142691433429718, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.09324415028095245, -0.1457146853208542, -0.14693768322467804, -0.18860143423080444, -0.4041707217693329, -0.3574528694152832, -0.3400868773460388, -0.40939760208129883, -0.47371840476989746, -0.41416096687316895, -0.3607977032661438, -0.45134437084198, -0.41105079650878906, -0.37890541553497314, -0.3528617024421692, -0.22906440496444702, -0.1713254600763321, -0.43422961235046387, -0.36850035190582275, -0.2472277581691742, -0.33116841316223145, -0.4858155846595764, -0.5296726822853088, -0.4051929712295532, -0.38111016154289246, -0.3519965410232544, -0.3619369864463806, -0.45940691232681274, -0.419619619846344, -0.34470951557159424, -0.3652566969394684, -0.3095012903213501, -0.2610744535923004, -0.272893488407135, -0.20075127482414246, -0.13074001669883728, -0.1540110558271408, -0.16183872520923615, -0.21018365025520325, -0.2949574589729309, -0.42879530787467957, -0.3639499247074127, -0.41005438566207886, -0.3720085620880127, -0.23515644669532776, -0.21509131789207458, -0.6029551029205322, -0.5253283381462097, -0.20621979236602783, -0.1259520947933197, -0.30459392070770264, -0.32887816429138184, -0.3201356828212738, -0.3553575277328491, -0.3291454613208771, -0.11983639746904373, -0.05925948917865753, -0.13445305824279785, -0.11445286124944687, -0.1943182349205017, -0.17547455430030823, -0.43233901262283325, -0.3487427234649658, -0.23209618031978607, -0.14997880160808563, -0.49990224838256836, -0.4770134687423706, -0.1812230944633484, -0.12337442487478256, -0.43467724323272705, -0.45279479026794434, -0.2797183096408844, -0.37085580825805664, -0.3695102632045746, -0.26891010999679565, -0.2949534058570862, -0.22412465512752533, -0.13112811744213104, -0.11633242666721344, -0.18684834241867065, -0.40117597579956055, -0.4055643081665039, -0.3423582911491394, -0.25050872564315796, -0.19118160009384155, -0.21476124227046967, -0.2655740976333618, -0.1880660504102707, -0.30600470304489136, -0.41977477073669434, -0.3663763999938965, -0.3130840063095093, -0.3049941658973694, -0.3996509313583374, -0.4925956130027771, -0.3621087074279785, -0.2603813707828522, -0.2944510579109192, -0.3271687924861908, -0.3941704332828522, -0.38375598192214966, -0.3540795147418976, -0.3496798872947693, -0.4429926872253418, -0.40254563093185425, -0.27857160568237305, -0.2191031277179718, -0.20139974355697632, -0.33586061000823975, -0.40581822395324707, -0.417854368686676, -0.3813862204551697, -0.4161446690559387, -0.4636605978012085, -0.3905295133590698, -0.45793822407722473, -0.30715411901474, -0.2654823064804077, -0.4604605436325073, -0.44601184129714966, -0.3304421603679657, -0.33610081672668457, -0.49718499183654785, -0.3954463303089142, -0.21883171796798706, -0.17901237308979034, -0.17616763710975647, -0.313082754611969, -0.3187536895275116, -0.37255847454071045, -0.4590288996696472, -0.3501141667366028, -0.41118696331977844, -0.4065901041030884, -0.36579859256744385, -0.28152719140052795, -0.2145143747329712, -0.4371711313724518, -0.428653359413147, -0.3696163296699524, -0.3265453577041626, -0.31009429693222046, -0.21495968103408813, -0.15219064056873322, -0.13223814964294434, -0.251506507396698, -0.3654273748397827, -0.296072393655777, -0.40876513719558716, -0.5085415840148926, -0.3056914210319519, -0.3562313914299011, -0.319324791431427, -0.23021575808525085, -0.13368567824363708, -0.11182670295238495, -0.3100191354751587, -0.31190401315689087, -0.2703443765640259, -0.2748829424381256, -0.26802244782447815, -0.25399914383888245, -0.2492361068725586, -0.23267433047294617, -0.31447696685791016, -0.3569517731666565, -0.37102943658828735, -0.3795318603515625, -0.3685961365699768, -0.30094683170318604, -0.2399817258119583, -0.1179717555642128, -0.18099600076675415, -0.08826175332069397, -0.08425705879926682, -0.3136594891548157, -0.35623979568481445, -0.3216434121131897, -0.3412003517150879, -0.3869344890117645, -0.29870304465293884, -0.29590141773223877, -0.36382997035980225, -0.3806788921356201, -0.39631325006484985, -0.4461842179298401, -0.44562166929244995, -0.4411267638206482, -0.38384369015693665, -0.32901522517204285, -0.2665063142776489, -0.2872093915939331, -0.13144224882125854, -0.1267874538898468, -0.36781859397888184, -0.452927827835083, -0.47720444202423096, -0.4980798363685608, -0.5865570306777954, -0.574820339679718, -0.5108522772789001, -0.5195355415344238, -0.5326308012008667, -0.5142015218734741, -0.4667731523513794, -0.4851873517036438, -0.5720140933990479, -0.483631432056427, -0.4545406699180603, -0.5304741859436035, -0.46026790142059326, -0.21525350213050842, -0.18965916335582733, -0.3236061930656433, -0.3679213523864746, -0.44010990858078003, -0.45376455783843994, -0.4893965721130371, -0.4932296872138977, -0.48757296800613403, -0.41774681210517883, -0.3900488018989563, -0.36545586585998535, -0.2920367121696472, -0.34056615829467773, -0.38377466797828674, -0.341458261013031, -0.38536807894706726, -0.40869414806365967, -0.3411678075790405, -0.17341169714927673, -0.18787702918052673, -0.22858509421348572, -0.16369031369686127, -0.23689433932304382, -0.260997474193573, -0.272917777299881, -0.28500017523765564, -0.27800944447517395, -0.2841614782810211, -0.2762317657470703, -0.26913589239120483, -0.22318175435066223, -0.22403666377067566, -0.22998644411563873, -0.2128327339887619, -0.20639121532440186, -0.21766357123851776, -0.25168752670288086, -0.13786937296390533, -0.14656488597393036, -0.17034369707107544, -0.11834470182657242, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.2235540896654129, -0.1399534046649933, -0.1473105400800705, -0.17034369707107544, -0.11834470182657242, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.2235540896654129, -0.1399534046649933, -0.1473105400800705, -0.17034369707107544, -0.11834470182657242, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.17020338773727417, -0.2235540896654129, -0.1399534046649933, -0.1473105400800705, -0.09142979234457016, -0.026400133967399597, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.07884843647480011, -0.12424124777317047, -0.09746280312538147, -0.15878377854824066, -0.19494666159152985, -0.1317216455936432, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.13509172201156616, -0.1491125226020813, -0.1526397168636322, -0.22861875593662262, -0.25057166814804077, -0.22960306704044342, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.21991780400276184, -0.2514239251613617, -0.24295607209205627, -0.2799048125743866, -8.360489845275879, -5.544560432434082, -5.565249443054199, -5.772902488708496, -5.22235631942749, -5.024496555328369, -5.144042015075684, -6.073698997497559, -6.3258867263793945, -4.89456844329834, -6.275448322296143, -9.763863563537598, -8.052295684814453, -9.162479400634766, -11.224562644958496, -9.331676483154297, -9.465180397033691, -8.427966117858887, -6.63633918762207, -2.780634880065918, -3.643933057785034, -4.139400005340576, -5.690579414367676, -6.4625372886657715, -5.118001461029053, -3.176278591156006, -5.783356666564941, -4.942319869995117, -3.0080227851867676, -7.618649482727051, -9.763869285583496, -7.662273406982422, -9.136051177978516, -8.610676765441895, -7.643739223480225, -6.607700347900391, -7.87022590637207, -8.257819175720215, -7.136273384094238, -6.0991530418396, -3.6515331268310547, 2.4021220207214355, -6.826870918273926, -7.7085137367248535, -4.079522609710693, -2.233621597290039, -5.358967304229736, -2.2312071323394775, 0.4607542157173157, -6.084353446960449, -8.218681335449219, -4.98280143737793, 1.4097048044204712, -6.5844221115112305, -7.025250434875488, -8.504616737365723, -8.79592227935791, -9.353665351867676, -7.490322113037109, -3.695239305496216, -0.5590367317199707, -3.9718122482299805, -4.66269063949585, -1.64008367061615, 1.6015070676803589, -5.57424259185791, -3.7424521446228027, -2.477044105529785, -6.645278453826904, -9.457792282104492, -6.186081886291504, -4.118739128112793, -6.599518775939941, -7.567115783691406, -5.767712116241455, -6.041831016540527, -7.898891448974609, -6.571847915649414, -5.49379825592041, -3.853837490081787, -2.8008456230163574, -6.577461242675781, -6.205836772918701, -4.720827102661133, -5.109042644500732, -5.487093925476074, -4.40411376953125, -3.177570104598999, -5.965484619140625, -7.04649543762207, -4.636752128601074, -5.735301971435547, -5.911413192749023, -4.232633113861084, -6.415297985076904, -6.591813087463379, -5.701110363006592, -4.800440788269043, -4.3792033195495605, -5.08638858795166, -6.891693115234375, -6.483270645141602, -4.0303730964660645, -2.9443893432617188, -5.168270111083984, -4.483706951141357, -2.1284589767456055, -4.751596450805664, -5.676941394805908, -4.951814651489258, -6.03753662109375, -3.650947093963623, -3.80172061920166, -6.66007137298584, -7.117368221282959, -5.760379791259766, -4.8617706298828125, -4.537776947021484, -4.906502723693848, -3.8909177780151367, -3.0227856636047363, -1.8852853775024414, -1.9953560829162598, -3.9703636169433594, -2.8784804344177246, -2.5011327266693115, -3.1978211402893066, -3.0455098152160645, -6.446613311767578, -5.13856315612793, -1.0426454544067383, -5.108339786529541, -8.14930248260498, -7.244915008544922, -4.581862449645996, -5.320391654968262, -5.450216770172119, -4.067885398864746, -3.2188472747802734, -3.012364387512207, -1.7311979532241821, -2.139514923095703, -3.6920433044433594, -4.707381725311279, -4.395873546600342, -4.349355697631836, -3.851714611053467, -6.957757949829102, -6.279736042022705, -4.277169227600098, -6.892598628997803, -8.978263854980469, -8.169452667236328, -6.828262805938721, -6.209836959838867, -7.218669414520264, -7.575286865234375, -6.686290740966797, -7.254262924194336, -6.968192100524902, -5.094913959503174, -6.25886869430542, -6.3322343826293945, -6.072859764099121, -5.018806457519531, -6.087697982788086, -6.888862609863281, -5.9087138175964355, -4.902868270874023, -7.163769721984863, -9.266130447387695, -8.830988883972168, -7.249799728393555, -6.052922248840332, -6.719944000244141, -8.098641395568848, -6.988680839538574, -6.528858661651611, -6.446472644805908, -6.137110233306885, -7.433206558227539, -7.906418800354004, -7.477707862854004, -7.697315216064453, -7.878863334655762, -8.27527904510498, -9.469019889831543, -8.062761306762695, -7.066041946411133, -8.202507019042969, -9.767022132873535, -9.24027156829834, -6.906378269195557, -5.89398193359375, -7.420079231262207, -8.033356666564941, -7.018632411956787, -6.046891212463379, -5.696999549865723, -7.513646125793457, -8.226078987121582, -8.87564754486084, -9.945825576782227, -9.133379936218262, -8.553518295288086, -10.02163028717041, -9.714871406555176, -9.331697463989258, -9.881758689880371, -11.258382797241211, -10.40365219116211, -8.44782543182373, -8.022539138793945, -8.803410530090332, -9.070998191833496, -8.949677467346191, -8.660255432128906, -9.092665672302246, -9.422162055969238, -9.036563873291016, -9.10283374786377, -9.76198673248291, -9.605862617492676, -8.604043960571289, -8.871626853942871, -9.772212028503418, -10.02510929107666, -10.19715690612793, -11.64747142791748, -10.573885917663574, -8.452759742736816, -8.343104362487793, -8.296491622924805, -8.340765953063965, -8.468446731567383, -8.348045349121094, -8.652791976928711, -8.544585227966309, -8.787325859069824, -8.693744659423828, -8.608689308166504, -8.583436012268066, -8.429556846618652, -8.382767677307129, -9.461450576782227, -10.35665512084961, -10.357802391052246, -11.266131401062012, -10.21860122680664, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -9.164958000183105, -10.259702682495117, -10.354620933532715, -11.266131401062012, -10.21860122680664, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -9.164958000183105, -10.259702682495117, -10.354620933532715, -11.266131401062012, -10.21860122680664, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -8.06071949005127, -9.164958000183105, -10.259702682495117, -10.354620933532715, -12.411181449890137, -12.11240291595459, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -10.137177467346191, -11.193451881408691, -10.947455406188965, -10.667969703674316, -13.333304405212402, -12.689347267150879, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -11.157910346984863, -12.150972366333008, -11.476118087768555, -10.929762840270996, -12.726781845092773, -12.81883716583252, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -11.7550630569458, -12.84625244140625, -12.063069343566895, -10.437298774719238, -0.48821479082107544, 0.9067566990852356, 1.1740421056747437, 0.5866263508796692, 0.13294608891010284, 0.8109279274940491, 0.6392921209335327, 1.2290278673171997, 1.0799371004104614, -0.02870635688304901, -0.15906982123851776, -1.064550757408142, 0.4496130347251892, 0.6943731904029846, -0.9339162707328796, 0.2515219449996948, -0.5619364380836487, -0.6522749066352844, -0.2778462767601013, 0.49802762269973755, 0.9086733460426331, -0.20897667109966278, 0.10577304661273956, 2.3002264499664307, 1.1083561182022095, 0.25207555294036865, 1.5705589056015015, 1.7541106939315796, -1.0710965394973755, -0.3057827353477478, 0.48622995615005493, -0.45684903860092163, -2.3726320266723633, -2.426596164703369, 0.1440161019563675, -0.20428471267223358, -1.1945748329162598, -0.4475557208061218, -0.883428692817688, 1.327396273612976, -1.3842142820358276, -1.769935965538025, 2.306730031967163, 0.8840228915214539, -1.8445138931274414, -0.8569515347480774, 1.1369976997375488, -3.152798652648926, -0.9063381552696228, 0.629115879535675, -1.0009089708328247, -3.623276472091675, -2.8535218238830566, 1.3348203897476196, -0.2252151221036911, -1.9014513492584229, -1.3676437139511108, -0.9169216752052307, 1.8127061128616333, -0.5892391800880432, -1.2480225563049316, 1.2012474536895752, -0.1867549866437912, -2.8765416145324707, -1.503738284111023, 1.472113013267517, -0.9439242482185364, -0.7700815796852112, 0.20737870037555695, -0.04054515063762665, -0.915033757686615, -0.2102455347776413, 0.9075198769569397, -0.2015083283185959, -1.7530068159103394, -1.4030511379241943, 0.28717684745788574, 0.9441898465156555, 0.3432545065879822, 0.24236272275447845, -0.08070696890354156, -0.4028942584991455, -0.13987557590007782, 1.3365702629089355, 1.697192668914795, -0.05167727172374725, -0.9876857399940491, -0.3142990469932556, -0.04190675914287567, 0.12119461596012115, -0.33838021755218506, -0.5303771495819092, -0.19166599214076996, -1.4158480167388916, -1.3675013780593872, 0.7677488923072815, 0.7906606793403625, 0.19247634708881378, -0.05999927222728729, 0.059847310185432434, 0.40252918004989624, 0.4124523997306824, 0.620746910572052, 0.12558390200138092, 0.10062749683856964, -0.4471348524093628, -0.33431583642959595, 0.4500637650489807, 0.6954440474510193, -0.3913484811782837, -0.853538990020752, 0.022539928555488586, -0.8395717144012451, -0.8822533488273621, -0.16590029001235962, 0.8291285634040833, -0.047005340456962585, -0.2960018515586853, -0.020501062273979187, 0.3789697289466858, 0.15555687248706818, -0.2908061742782593, -0.28180038928985596, -0.17376555502414703, 0.03689016401767731, 0.013392940163612366, 0.17639394104480743, 0.5084177255630493, 0.09038172662258148, -0.8843666911125183, -0.919052004814148, -1.2237753868103027, -0.6504635214805603, -0.43628108501434326, 0.4917839765548706, -0.2570500373840332, 0.15428884327411652, 0.4800957441329956, 0.46285372972488403, 0.2549741268157959, -0.2873292565345764, -0.6440054178237915, -0.3135302662849426, -0.4731423854827881, -0.4061031937599182, -0.10263882577419281, 0.507300078868866, 0.6208840012550354, -0.9297124147415161, -1.6049007177352905, -1.8045592308044434, -0.7381646037101746, -0.11785911023616791, 0.07626844942569733, 0.032747700810432434, 0.7071434855461121, 0.8431430459022522, 0.6434028744697571, 0.23190049827098846, -0.9017224311828613, -1.2298945188522339, -0.6431266665458679, 0.10374040901660919, -0.2375352829694748, -0.609836757183075, 0.6127271056175232, 0.9503653645515442, -0.3525019884109497, -1.7347067594528198, -1.0376520156860352, 0.3943938612937927, 0.21534378826618195, 0.8353890776634216, 0.4386860132217407, 0.8010783791542053, 1.1710299253463745, 0.5592950582504272, -0.03577606379985809, -0.872196614742279, -1.0083414316177368, -0.43170785903930664, 0.45613938570022583, 0.2359371930360794, -0.1788431853055954, 0.0039780884981155396, 0.5266451239585876, -0.17886380851268768, -1.0294134616851807, -0.6811116933822632, 0.22455616295337677, -0.29707634449005127, 0.911594569683075, 0.684350311756134, 0.8038455247879028, 1.0420814752578735, 0.5680941939353943, -0.07606534659862518, -0.2778937816619873, -0.20019738376140594, -0.10625140368938446, 0.3076176047325134, 0.26475292444229126, 0.7886738777160645, -0.19236086308956146, -0.2671825885772705, -0.49832403659820557, -1.0248572826385498, -1.7145912647247314, -0.8520256280899048, 0.06829763948917389, 0.8006582260131836, 0.13571061193943024, 0.4523530602455139, 0.6620613932609558, 0.32846981287002563, -0.24300538003444672, -0.3564220070838928, -0.6954901814460754, -0.4654296040534973, -0.29647576808929443, -0.34792453050613403, -0.08064667880535126, -0.6300113797187805, -0.708831250667572, -0.5192978978157043, -1.2652192115783691, -2.9866795539855957, -2.028066635131836, 0.434223473072052, 0.7214599251747131, -0.06860892474651337, 0.1942739635705948, 0.12147743999958038, 0.02227558195590973, -0.08825485408306122, -0.06319974362850189, -0.24088911712169647, -0.21937905251979828, -0.3115007281303406, -0.2896289825439453, -0.33348792791366577, -0.4339315891265869, -0.4838491678237915, -0.5290617346763611, -1.3367799520492554, -3.3355846405029297, -2.486072540283203, 0.1981271654367447, 0.43018192052841187, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -1.237977385520935, -3.2716078758239746, -2.4479432106018066, 0.1981271654367447, 0.43018192052841187, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -1.237977385520935, -3.2716078758239746, -2.4479432106018066, 0.1981271654367447, 0.43018192052841187, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -0.5141127109527588, -1.237977385520935, -3.2716078758239746, -2.4479432106018066, 0.268701434135437, 0.9139394164085388, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, 0.042165353894233704, -0.688607931137085, -3.2750754356384277, -2.8129663467407227, -0.5981675386428833, 0.05380210280418396, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.6318829655647278, -0.9161477088928223, -2.2554996013641357, -2.1755683422088623, -0.8581856489181519, -0.01915512979030609, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.1835118979215622, -0.42424750328063965, -0.752912163734436, -0.8642322421073914, -0.9184495210647583, -1.206889033317566, -1.0102598667144775, 0.07905712723731995, 1.1116244792938232, -0.7119783163070679, -0.3020281493663788, -0.7524276971817017, -1.2022408246994019, -0.6706043481826782, 1.1634604930877686, 0.9520095586776733, 0.4908502995967865, 1.0364069938659668, 1.5315324068069458, 0.08103492856025696, -1.058241605758667, -1.9424586296081543, -1.376551628112793, -1.628414511680603, -0.6599404811859131, -2.592165946960449, -1.100114345550537, 1.5902289152145386, 0.14471635222434998, 1.22367525100708, 2.443420648574829, 1.6641687154769897, -1.6071568727493286, 0.1536276638507843, 0.29382678866386414, 1.364726185798645, -2.8972837924957275, -4.8463826179504395, -0.45451393723487854, 0.47717079520225525, -0.487621933221817, -0.19601860642433167, -0.7704182863235474, -0.3031924068927765, -1.9472633600234985, -1.3630187511444092, 0.9273331165313721, 0.38644906878471375, -2.393449544906616, -2.080536365509033, 0.6701381206512451, -1.0437605381011963, -2.1280081272125244, -2.2979602813720703, -0.5307395458221436, -3.358572006225586, -4.500366687774658, -0.49683108925819397, -0.5061761140823364, -0.61472487449646, -0.10291269421577454, -0.63149094581604, -0.5491870641708374, -0.3151712715625763, 0.06160053610801697, 0.8188717365264893, 1.1792632341384888, -1.6225790977478027, -3.2751431465148926, -0.4558939039707184, 0.05402788519859314, -2.3509480953216553, -2.6417388916015625, -0.17396166920661926, -0.5014392137527466, -1.6379191875457764, -1.5891833305358887, -0.7394434213638306, -0.8500306606292725, -0.5497448444366455, -0.3552028238773346, 0.1699434220790863, -0.6276129484176636, -1.040605902671814, -0.7709486484527588, -0.261210173368454, 0.03815779089927673, -1.1099251508712769, -0.5455158948898315, -0.5040298700332642, -1.5731472969055176, -1.7397756576538086, -1.0311214923858643, -1.180241584777832, -0.9031766653060913, 0.17292967438697815, -0.49195149540901184, -0.8327763080596924, -0.7938240766525269, -0.027331799268722534, 0.12449803948402405, -1.2159433364868164, -1.3358573913574219, -0.762356162071228, -0.907203197479248, -0.3793928921222687, -0.9553120136260986, -0.8854128122329712, -0.7378954887390137, -1.4055687189102173, -1.385408639907837, -0.6253343820571899, -0.8680882453918457, -0.7725296020507812, 0.39616134762763977, 0.11322340369224548, -0.9118902683258057, -1.372843861579895, -0.5978997945785522, -0.5227527618408203, -1.6232949495315552, -1.0392149686813354, -0.5423437356948853, -0.7481207847595215, -0.7206411361694336, -1.0440961122512817, -1.0384161472320557, -0.40696731209754944, -0.6814223527908325, -1.104573369026184, -0.28845158219337463, -0.36351725459098816, -0.05494394898414612, 0.3462829291820526, -0.3472917377948761, -0.4546861946582794, -0.6383262872695923, -0.7519264221191406, 0.136570543050766, -0.24500331282615662, 0.008913189172744751, 0.7865574359893799, -0.44093063473701477, -1.666412115097046, -1.954379916191101, -0.5848348140716553, -0.0997183620929718, -0.7458784580230713, -1.8448742628097534, -0.753691554069519, 0.5283353328704834, -0.5435850620269775, -0.03889802098274231, -0.24188843369483948, -1.1982213258743286, -0.747852087020874, -0.5282634496688843, -0.4455302059650421, -1.0290411710739136, -1.817283034324646, -2.363227367401123, -2.777919292449951, -3.829256296157837, -3.4584381580352783, -2.265521764755249, -1.3727623224258423, -1.5533027648925781, -1.970848560333252, -1.6083018779754639, -1.4946317672729492, -2.210878849029541, -0.9780406951904297, -0.6844514608383179, -1.3970855474472046, -1.1867750883102417, -0.6085225343704224, -1.2157763242721558, -1.9324195384979248, -2.253438949584961, -2.8246572017669678, -2.9129419326782227, -3.0892693996429443, -2.673072338104248, -2.4626052379608154, -0.7890384197235107, -0.4817970097064972, -1.6168469190597534, -1.8806712627410889, -1.7890499830245972, -1.8789044618606567, -1.2664154767990112, -1.4731608629226685, -1.48082435131073, -0.9753671884536743, -0.12290826439857483, -1.4992069005966187, -1.6382635831832886, -1.711760401725769, -1.3205180168151855, -1.2654380798339844, -0.9050589799880981, -0.5463043451309204, -1.0463999509811401, -0.8031188249588013, 0.23968395590782166, -0.8318595886230469, -1.2457553148269653, -1.177067518234253, -0.5465003848075867, -1.3524211645126343, -1.7154635190963745, -1.7037527561187744, -1.1875196695327759, 0.08682569861412048, -0.8738486766815186, -0.8877553939819336, -0.591684103012085, -0.2614613473415375, -0.1052941381931305, -0.16003409028053284, 0.15280631184577942, 0.21427199244499207, 0.43474844098091125, 0.9280354976654053, 0.3192045986652374, 0.06550994515419006, -0.045611679553985596, -0.27362650632858276, -0.8839619159698486, -0.733352541923523, -1.3350480794906616, -1.571473479270935, 0.18308588862419128, -0.046705156564712524, 0.05951640009880066, 0.16526958346366882, 0.08905789256095886, 0.0883883535861969, -0.019303172826766968, 0.06908228993415833, -0.0464196503162384, -0.08737877011299133, 0.19320163130760193, 0.28933820128440857, 0.2857911288738251, 0.36610665917396545, 0.37923142313957214, 0.26758554577827454, -0.14336684346199036, -1.1979271173477173, -1.3963371515274048, 0.23389694094657898, 0.021365612745285034, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, -0.04644802212715149, -1.215650200843811, -1.4140549898147583, 0.23389694094657898, 0.021365612745285034, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, -0.04644802212715149, -1.215650200843811, -1.4140549898147583, 0.23389694094657898, 0.021365612745285034, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, 0.37636634707450867, -0.04644802212715149, -1.215650200843811, -1.4140549898147583, -0.754275918006897, -1.2044278383255005, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -0.7720628976821899, -1.2018508911132812, -1.8869627714157104, -1.8242288827896118, -1.7414133548736572, -2.165964126586914, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.5760703086853027, -1.9062695503234863, -2.7065491676330566, -2.4235544204711914, -1.5390987396240234, -2.153946876525879, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.5357688665390015, -1.9634498357772827, -2.7699618339538574, -2.530733346939087, -0.178277388215065, -0.16320672631263733, -0.10295990854501724, 0.024193786084651947, -0.04793323203921318, 0.030576709657907486, 0.10946892201900482, 0.08876211941242218, -0.008115703240036964, 0.03721310570836067, 0.08601122349500656, 0.16179059445858002, -0.012260336428880692, -0.2766510844230652, -0.1585601568222046, -0.055700916796922684, -0.09849248826503754, -0.10807057470083237, -0.03640389442443848, -0.09031622111797333, -0.03546687960624695, 0.1320364624261856, 0.303899347782135, 0.061529889702796936, -0.1284123808145523, 0.025743156671524048, 0.06232878565788269, 0.0021537113934755325, 0.19612032175064087, 0.45365262031555176, 0.1980132907629013, -0.16211244463920593, 0.23847262561321259, 0.5079869031906128, 0.21347017586231232, 0.04562457650899887, 0.07433106005191803, 0.009849846363067627, -0.08582063764333725, -0.1028449758887291, 0.17178715765476227, 0.41517096757888794, 0.10508909821510315, -0.21841613948345184, 0.30178987979888916, 0.4518275856971741, 0.1584586650133133, 0.17902378737926483, 0.43001705408096313, 0.17747825384140015, -0.2464827001094818, 0.28671181201934814, 0.5322603583335876, 0.17846162617206573, -0.04790565371513367, 0.006804898381233215, -0.029167909175157547, -0.035489752888679504, -0.061869051307439804, 0.08160842955112457, 0.17713838815689087, -0.1180744394659996, -0.19926904141902924, 0.25010889768600464, 0.35972505807876587, 0.12337611615657806, 0.0969274714589119, 0.15683460235595703, -0.0764319896697998, -0.1926000416278839, -0.003935597836971283, 0.0971406102180481, 0.005877181887626648, -0.10364125669002533, -0.0027659833431243896, 0.004660952836275101, -0.04612678289413452, -0.03453095257282257, -0.008097667247056961, 0.017582785338163376, 0.012449871748685837, 0.03856036439538002, 0.016362659633159637, -0.008131805807352066, -0.0011159703135490417, -0.042538806796073914, -0.022237494587898254, -0.03632083535194397, -0.012441407889127731, 0.1067141443490982, 0.08568184077739716, -0.012808587402105331, -0.0915953665971756, -0.05892716348171234, -0.024110790342092514, 0.006381921470165253, -0.0015295818448066711, -0.009931974112987518, 0.0006792768836021423, -0.01266063004732132, 0.04487743228673935, 0.10052409023046494, 0.024571679532527924, 0.007261613383889198, -0.029889801517128944, 0.005951244384050369, 0.02334706485271454, 0.025778070092201233, 0.1036987155675888, 0.09974969923496246, 0.06326750665903091, -0.04861908406019211, -0.10696697235107422, -0.07682609558105469, -0.029697297140955925, -0.019839521497488022, -0.05797610431909561, -0.028337374329566956, -0.027045927941799164, -0.03415001556277275, 0.044469207525253296, -0.034631043672561646, 0.029947470873594284, 0.04494475573301315, -0.012163572013378143, -0.009000729769468307, 0.03520585224032402, 0.041023701429367065, 0.03069140762090683, 0.0023888424038887024, -0.050988513976335526, -0.13863737881183624, -0.09271477907896042, -0.10428012907505035, -0.04580036178231239, 0.01100970059633255, 0.011357128620147705, 0.013565897941589355, -0.03472284600138664, -0.06605513393878937, -0.01265893317759037, 0.11563000082969666, 0.07300716638565063, 0.05645135045051575, 0.055478885769844055, 0.07776974886655807, -0.02041594684123993, -0.02225666493177414, 0.0128251314163208, 0.016569770872592926, -0.06391222029924393, -0.0016892999410629272, 0.018413037061691284, 0.06905815005302429, 0.06089744716882706, 0.01334024965763092, 0.002676708623766899, 0.019835591316223145, -0.015578873455524445, 0.022212490439414978, 0.07716932892799377, 0.02956686168909073, -0.0038644354790449142, 0.040308430790901184, 0.03209885209798813, -0.07595017552375793, -0.047674644738435745, -0.018251080065965652, -0.04962064325809479, -0.06479129195213318, -0.009065181948244572, -0.04683595895767212, -0.004812922328710556, 0.01708335056900978, -0.016896530985832214, -0.015655022114515305, 0.040475450456142426, 0.04272526502609253, 0.04780616611242294, 0.013557486236095428, -0.016953155398368835, -0.042020998895168304, 0.005341533571481705, 0.054606154561042786, 0.062115222215652466, 0.007823944091796875, 0.010081414133310318, -0.030618980526924133, -0.04991823434829712, 0.0016400627791881561, -0.15205241739749908, -0.1377517580986023, -0.08217163383960724, -0.0774172991514206, -0.026864707469940186, -0.06842373311519623, -0.07072445750236511, -0.06636182963848114, -0.009778633713722229, -0.01599041372537613, -0.0913776233792305, -0.11049018055200577, -0.04123822599649429, 0.01179293543100357, -0.013470456004142761, -0.02940734475851059, -0.07372458279132843, -0.028544604778289795, 0.01158972829580307, -0.1440558135509491, -0.14866898953914642, -0.016909204423427582, 0.012195799499750137, -0.002211928367614746, -0.012259893119335175, 0.0040961503982543945, 0.011507868766784668, 0.07190994918346405, 0.10376299917697906, 0.036216363310813904, -0.02341753989458084, 0.01829226315021515, 0.014335207641124725, 0.011539898812770844, 0.04598860442638397, -0.01737874746322632, -0.0020080432295799255, 0.03788083791732788, -0.14560391008853912, -0.14016777276992798, -0.02302052080631256, -0.017451591789722443, -0.01567358523607254, -0.006506070494651794, -0.005579300224781036, 0.006990469992160797, 0.029250718653202057, 0.031385552138090134, -0.0085282102227211, -0.010855227708816528, -0.009899012744426727, -0.009650364518165588, -0.003103286027908325, 0.0003523975610733032, -0.03402147442102432, 0.012178078293800354, 0.04706133157014847, -0.1376691311597824, -0.10768677294254303, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, -0.018231026828289032, 0.03275530785322189, 0.06343008577823639, -0.1376691311597824, -0.10768677294254303, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, -0.018231026828289032, 0.03275530785322189, 0.06343008577823639, -0.1376691311597824, -0.10768677294254303, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, 0.011778272688388824, -0.018231026828289032, 0.03275530785322189, 0.06343008577823639, -0.1545359194278717, -0.1193569079041481, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, 0.01732296124100685, -0.005849782377481461, 0.010567598044872284, 0.07327266037464142, -0.18123240768909454, -0.15977250039577484, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.08409136533737183, -0.14090608060359955, -0.06709247827529907, -0.00593033991754055, -0.1356370747089386, -0.10166491568088531, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.07184767723083496, -0.09937173128128052, -0.05331486463546753, -0.025553304702043533, -0.23676025867462158, -0.046131908893585205, -0.024571634829044342, -0.011937953531742096, -0.09959940612316132, 0.025382138788700104, 0.02476867288351059, 0.07442616671323776, 0.0027858540415763855, -0.08244914561510086, -0.057392410933971405, 0.21486011147499084, 0.09247904270887375, 0.054554857313632965, 0.41539880633354187, 0.15955254435539246, -0.0038369297981262207, 0.15907001495361328, 0.08979517966508865, -0.062093883752822876, -0.05850642919540405, -0.022348739206790924, 0.17489507794380188, -0.06008126586675644, -0.14152632653713226, -0.01701229065656662, 0.1971142590045929, 0.08274609595537186, 0.0026961639523506165, 0.16524255275726318, 0.11556374281644821, -0.08151757717132568, -0.2039300501346588, 0.12222722917795181, 0.22718635201454163, 0.011807717382907867, 0.0514318123459816, 0.012643195688724518, -0.15296219289302826, -0.14992964267730713, -0.035275138914585114, 0.04817434400320053, -0.03179607540369034, -0.20407408475875854, -0.019905172288417816, -2.905726432800293e-06, 0.04582785815000534, 0.08381616324186325, 0.11331502348184586, -0.1959751844406128, -0.2612484097480774, 0.014102451503276825, 0.0933476909995079, 0.19658806920051575, -0.11598853766918182, -0.015259556472301483, -0.014674179255962372, -0.15536747872829437, -0.027801528573036194, 0.06598984450101852, 0.06634516268968582, -0.13191309571266174, -0.1731826663017273, -0.09720174223184586, -0.07269922643899918, -0.025242090225219727, 0.10447680205106735, -0.040850572288036346, -0.22349971532821655, -0.28458791971206665, -0.05606483668088913, 0.10153595358133316, 0.03869672864675522, -0.16434083878993988, -0.03334563225507736, -0.05901649594306946, -0.10607016086578369, 0.011560343205928802, -0.046393588185310364, -0.13399790227413177, -0.16093656420707703, -0.10000334680080414, -0.04274957627058029, -0.11340662837028503, -0.1234651580452919, -0.11700139194726944, -0.15755178034305573, -0.15894563496112823, -0.1858084499835968, -0.10189841687679291, -0.015342377126216888, -0.049441859126091, -0.10422662645578384, -0.06600740551948547, -0.1052645817399025, -0.08675766736268997, -0.06596139818429947, -0.14394576847553253, -0.14516817033290863, -0.14473582804203033, -0.1345689296722412, -0.10624804347753525, -0.08163724839687347, -0.11698034405708313, -0.11094088852405548, -0.13435035943984985, -0.15209238231182098, -0.147624209523201, -0.14527401328086853, -0.07487237453460693, -0.03614635765552521, -0.1392485797405243, -0.17191579937934875, -0.15616989135742188, -0.16080841422080994, -0.13422706723213196, -0.20473292469978333, -0.20715264976024628, -0.19723308086395264, -0.18199338018894196, -0.15542209148406982, -0.149200439453125, -0.11491678655147552, -0.08643986284732819, -0.14942213892936707, -0.15515148639678955, -0.16283372044563293, -0.19588439166545868, -0.16005724668502808, -0.10884277522563934, -0.19362370669841766, -0.19064578413963318, -0.11574434489011765, -0.19179502129554749, -0.055315256118774414, -0.11014867573976517, -0.16426606476306915, -0.15123575925827026, -0.1156640499830246, -0.08748842775821686, -0.1331370770931244, -0.057347558438777924, -0.03754773736000061, -0.08520364761352539, -0.11717330664396286, -0.07324814051389694, -0.08283744752407074, -0.11321981996297836, -0.058876894414424896, -0.0882066935300827, -0.02036186307668686, 0.039616771042346954, -0.10946150124073029, 0.017790667712688446, -0.10793203860521317, -0.13279888033866882, -0.1712173968553543, -0.14164113998413086, -0.1588464230298996, -0.13935060799121857, -0.051489196717739105, -0.09454017877578735, -0.10381603986024857, -0.006506368517875671, -0.05929131805896759, -0.10239656269550323, -0.1557147204875946, -0.1150551438331604, -0.06923121958971024, -0.05558229982852936, 0.0040604546666145325, -0.1016225516796112, 0.04803631454706192, -0.02276892215013504, -0.06713299453258514, -0.15121813118457794, -0.12184885144233704, -0.12649063766002655, -0.12040019035339355, -0.09736131131649017, -0.17490725219249725, -0.12003988772630692, 0.022917933762073517, -0.06274376809597015, -0.04010605067014694, -0.05961856245994568, -0.09226992726325989, -0.11561422795057297, -0.05724529176950455, -0.04166325181722641, -0.1080462634563446, 0.06061961501836777, -0.014040224254131317, -0.03452286869287491, -0.025148995220661163, -0.042640261352062225, -0.06096974387764931, -0.08110487461090088, -0.06174662336707115, -0.10506691038608551, -0.09757200628519058, -0.06209972873330116, -0.05236121267080307, -0.01717657595872879, 0.03198874741792679, -0.01043865829706192, -0.1365179717540741, -0.13099628686904907, -0.10392038524150848, -0.011469043791294098, 0.13776785135269165, 0.06319095939397812, 0.06290092319250107, 0.04325147718191147, 0.06067826598882675, 0.05851312726736069, 0.047940246760845184, 0.07171481102705002, 0.09079357236623764, 0.08481954783201218, 0.06113892048597336, 0.04541506618261337, 0.04256226867437363, 0.07054675370454788, 0.06031634658575058, -0.007130026817321777, -0.005280166864395142, 0.004273645579814911, 0.01659724861383438, 0.1519794464111328, 0.07776423543691635, 0.07703381031751633, 0.07788776606321335, 0.08752336353063583, 0.07815911620855331, 0.08939162641763687, 0.08304382115602493, 0.09478699415922165, 0.09427651017904282, 0.08543776720762253, 0.08590321987867355, 0.08963107317686081, 0.08521952480077744, 0.08811097592115402, 0.06111165136098862, -0.018254823982715607, 0.00618501752614975, 0.017904140055179596, 0.15325617790222168, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.06402759999036789, -0.020515277981758118, 0.0033088549971580505, 0.017904140055179596, 0.15325617790222168, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.06402759999036789, -0.020515277981758118, 0.0033088549971580505, 0.017904140055179596, 0.15325617790222168, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.0950876846909523, 0.06402759999036789, -0.020515277981758118, 0.0033088549971580505, -0.030249156057834625, 0.11352083832025528, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.05356674641370773, 0.029708437621593475, -0.06702203303575516, -0.05087196081876755, 0.12042229622602463, 0.20116722583770752, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18050631880760193, 0.18765413761138916, 0.046945251524448395, -0.013460293412208557, 0.10087896138429642, 0.20953279733657837, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.15614494681358337, 0.1784590184688568, 0.14354020357131958, 0.09354155510663986, -27.75868797302246, -23.873929977416992, -22.72272300720215, -23.05451011657715, -19.69942855834961, -20.885881423950195, -23.313291549682617, -21.647489547729492, -19.977487564086914, -24.751020431518555, -25.107833862304688, -27.670995712280273, -37.77641296386719, -37.27180862426758, -24.073078155517578, -27.6756591796875, -29.830961227416992, -29.469892501831055, -24.337501525878906, -19.108243942260742, -17.715070724487305, -28.64764976501465, -29.39484977722168, -20.231739044189453, -19.630834579467773, -21.786272048950195, -21.188915252685547, -20.081741333007812, -31.163774490356445, -33.48017120361328, -27.04625701904297, -35.0113525390625, -42.463741302490234, -27.76017951965332, -21.46865463256836, -21.753694534301758, -27.975046157836914, -25.02775764465332, -16.71653938293457, -20.628427505493164, -34.497711181640625, -25.128339767456055, -20.188640594482422, -18.69724464416504, -27.806718826293945, -20.29538917541504, -14.664132118225098, -30.367006301879883, -28.952062606811523, -25.474748611450195, -23.8071346282959, -38.9089469909668, -30.32850456237793, -19.676618576049805, -15.939504623413086, -18.365310668945312, -16.662492752075195, -13.95079517364502, -18.670358657836914, -27.09568977355957, -21.703907012939453, -21.514087677001953, -20.74440574645996, -32.83218002319336, -25.52579689025879, -15.62857437133789, -21.517518997192383, -22.4515323638916, -26.3978214263916, -16.615253448486328, -20.75816535949707, -21.01683807373047, -17.90101432800293, -15.31707763671875, -19.17103385925293, -19.14207649230957, -9.889111518859863, -9.070634841918945, -8.752904891967773, -7.036664009094238, -5.691364765167236, -7.495317459106445, -11.103109359741211, -11.008427619934082, -9.366990089416504, -10.321558952331543, -10.792031288146973, -12.873927116394043, -12.820491790771484, -9.946288108825684, -8.704184532165527, -10.690479278564453, -12.884814262390137, -18.301433563232422, -19.679277420043945, -10.420710563659668, -8.553427696228027, -7.084677696228027, -7.364802360534668, -7.622987747192383, -8.937166213989258, -5.79133939743042, -4.475975513458252, -6.272353649139404, -8.430516242980957, -8.02450942993164, -9.38343334197998, -15.254294395446777, -14.072371482849121, -9.057443618774414, -10.763665199279785, -13.105294227600098, -18.515594482421875, -19.68470001220703, -13.212981224060059, -10.979372024536133, -8.41785717010498, -6.530667304992676, -9.655435562133789, -10.524481773376465, -7.609384536743164, -6.226776123046875, -7.364939212799072, -9.849936485290527, -9.32941722869873, -10.061118125915527, -13.343090057373047, -12.156083106994629, -9.49195671081543, -9.552383422851562, -10.731486320495605, -20.946868896484375, -24.285337448120117, -12.278223991394043, -10.314229011535645, -10.5796480178833, -8.031636238098145, -9.2373628616333, -11.282464027404785, -10.766524314880371, -11.149181365966797, -8.551431655883789, -8.994250297546387, -9.446040153503418, -11.38293743133545, -9.55802059173584, -6.591667652130127, -7.5696306228637695, -10.846254348754883, -12.438739776611328, -18.48771858215332, -22.320444107055664, -12.762493133544922, -11.164504051208496, -8.092693328857422, -10.124951362609863, -16.58385467529297, -16.163888931274414, -12.620960235595703, -12.449967384338379, -11.57529067993164, -10.769381523132324, -13.630498886108398, -12.956985473632812, -10.172152519226074, -9.402809143066406, -6.397458076477051, -10.630017280578613, -13.036412239074707, -17.40732192993164, -20.92322540283203, -14.790844917297363, -13.315152168273926, -11.922455787658691, -14.356335639953613, -16.66482925415039, -13.082672119140625, -11.032074928283691, -12.314227104187012, -11.782692909240723, -11.677000999450684, -13.797691345214844, -13.109779357910156, -11.1686372756958, -10.115782737731934, -9.027633666992188, -10.522542953491211, -12.831334114074707, -18.19899559020996, -19.909526824951172, -15.949872016906738, -14.305001258850098, -13.1694974899292, -13.498738288879395, -12.164923667907715, -9.817366600036621, -8.71426773071289, -9.438126564025879, -8.432486534118652, -9.404001235961914, -11.48949909210205, -13.469891548156738, -11.702088356018066, -9.349991798400879, -10.99153995513916, -13.597597122192383, -14.775574684143066, -19.744516372680664, -21.193214416503906, -17.458946228027344, -13.760481834411621, -10.603110313415527, -10.485515594482422, -13.44836711883545, -13.428984642028809, -11.138410568237305, -9.922505378723145, -10.51574993133545, -10.995551109313965, -10.337051391601562, -10.73525619506836, -10.214607238769531, -8.33273696899414, -8.909223556518555, -9.697990417480469, -12.732815742492676, -20.321718215942383, -21.57208251953125, -18.21376609802246, -13.655747413635254, -8.672386169433594, -9.159531593322754, -9.784442901611328, -9.617924690246582, -9.000048637390137, -8.998761177062988, -9.755203247070312, -10.009571075439453, -8.956596374511719, -8.199540138244629, -8.310819625854492, -8.307677268981934, -7.9215497970581055, -7.956457614898682, -10.658157348632812, -15.928969383239746, -19.309635162353516, -16.63462257385254, -13.078577995300293, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -10.130195617675781, -15.310526847839355, -18.586856842041016, -16.63462257385254, -13.078577995300293, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -10.130195617675781, -15.310526847839355, -18.586856842041016, -16.63462257385254, -13.078577995300293, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -7.349917411804199, -10.130195617675781, -15.310526847839355, -18.586856842041016, -22.183799743652344, -18.97190284729004, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -12.721362113952637, -16.079866409301758, -19.377487182617188, -20.976408004760742, -28.794879913330078, -27.17008399963379, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -21.884336471557617, -28.034578323364258, -29.0866641998291, -27.71727180480957, -27.595134735107422, -27.118295669555664, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -22.914159774780273, -27.954730987548828, -30.059926986694336, -26.69198226928711, -0.3609078526496887, 0.25236478447914124, -0.2591845691204071, -0.32100385427474976, -0.29852229356765747, -0.2879848778247833, -1.1253780126571655, -0.3585718870162964, -0.3736337423324585, -1.3260345458984375, -0.7062711119651794, -0.6818503141403198, -0.8364169001579285, -0.8541911840438843, -0.4590112864971161, -1.6302967071533203, -1.4248590469360352, -0.17175748944282532, -0.8107011318206787, 0.18122521042823792, -0.2535480260848999, -0.6879305243492126, 0.35506701469421387, 0.9387427568435669, 0.5240272283554077, -0.9211949110031128, 0.16872742772102356, -0.08150014281272888, -1.3708114624023438, -0.09673401713371277, 0.9699146747589111, 0.634035050868988, -0.07437452673912048, -0.6199653148651123, -1.611706256866455, -1.2360939979553223, -0.5697205662727356, -1.5800055265426636, 0.05446088686585426, 0.7772242426872253, -0.3519924581050873, -0.46127429604530334, 0.3076452910900116, 1.7729806900024414, 0.008711542934179306, -1.0644749402999878, 0.6547978520393372, 0.3725801110267639, 0.24799302220344543, -0.14281469583511353, 1.2540700435638428, 0.6394079923629761, -1.3644047975540161, -1.0580635070800781, -0.8930766582489014, -0.33514603972435, -0.8454626202583313, 0.45555177330970764, 1.5093574523925781, 0.9354300498962402, 0.16898061335086823, -0.05349091812968254, 1.3085899353027344, 0.07453009486198425, -1.368391990661621, 0.40230247378349304, 0.44242194294929504, -0.04650518670678139, -0.3999611437320709, 0.42638716101646423, -0.05873081460595131, -1.0605067014694214, -0.5622392296791077, -0.5198890566825867, -0.599965512752533, -1.6648750305175781, 0.2776399850845337, 1.254102110862732, 0.5776736736297607, -0.3062216341495514, -0.5236406326293945, 0.026536669582128525, 0.010970044881105423, -0.10359615087509155, -0.17085117101669312, -0.2582375705242157, -0.2870352566242218, -0.532831609249115, -1.1357215642929077, -0.37666621804237366, 0.23810715973377228, -0.3436347544193268, -0.46032485365867615, -0.7332468032836914, -1.8460137844085693, 0.8312275409698486, 1.0155389308929443, -0.15446345508098602, -0.2882136404514313, -0.3209899961948395, -0.31442758440971375, 0.016615893691778183, 0.21452517807483673, -0.36266201734542847, -0.5877525806427002, -0.3154204487800598, -0.7198569178581238, -0.982499361038208, -0.36117395758628845, 0.14093506336212158, 0.17128784954547882, 0.05902784690260887, -0.7992244958877563, -1.772031545639038, 1.5272456407546997, 1.4954912662506104, -0.7627238631248474, -0.6339729428291321, -0.28504931926727295, -0.5785419940948486, -0.10096631944179535, 0.18827517330646515, -0.6341150403022766, -0.21327370405197144, -0.15859082341194153, -0.5709387063980103, -0.4449828863143921, 0.0933314859867096, -0.1179075539112091, -0.18103955686092377, -0.14753948152065277, -1.2224828004837036, -2.288114309310913, 0.7343694567680359, 0.8149053454399109, -0.14551405608654022, -0.07337236404418945, -0.02382967248558998, 0.03330203518271446, 0.5420083403587341, -0.10586324334144592, -0.5140330195426941, 0.12010148167610168, 0.14283588528633118, -0.24920153617858887, -0.017733562737703323, 0.2203504741191864, -0.23488643765449524, -0.19688066840171814, -0.5158775448799133, -0.5857821106910706, -1.5678268671035767, 0.20930485427379608, 0.28278234601020813, 0.09300751984119415, -0.05966571345925331, -0.4794250428676605, -0.6304876804351807, 0.09529426693916321, 0.37731412053108215, -0.35436972975730896, -0.1487307846546173, 0.0025555752217769623, 0.1484442949295044, 0.09311378002166748, 0.2708563804626465, 0.2635129690170288, -0.48523691296577454, -0.9386398792266846, -0.29623714089393616, -0.9758129119873047, 0.22444427013397217, 0.4503300189971924, 0.2930090129375458, 0.17464806139469147, -0.34791111946105957, -0.0733305811882019, 0.09742417931556702, 0.07225733995437622, -0.5908904075622559, -0.7921363115310669, -0.26870477199554443, 0.06583800911903381, -0.1743602156639099, 0.15734758973121643, 0.23580220341682434, -0.573033332824707, -1.0043903589248657, -0.21456244587898254, -1.1331562995910645, -0.017503056675195694, 0.13707752525806427, 0.002476196736097336, 0.058102887123823166, -0.4215674102306366, -0.236430823802948, 0.28717201948165894, -0.33082494139671326, -0.9576981067657471, -1.4319992065429688, -1.4492509365081787, -1.258601188659668, -0.7587171792984009, -0.4752263128757477, -0.6523036360740662, -0.7138780355453491, -1.3276482820510864, -1.244001865386963, -1.6542208194732666, -0.0051951296627521515, 0.22776669263839722, -0.2544845640659332, 0.17371106147766113, 0.14942319691181183, 0.2587417662143707, 0.5928989052772522, 0.2021419107913971, -0.10944762825965881, -0.8522806763648987, -1.0299708843231201, -1.1227868795394897, -0.8127340078353882, -0.38932064175605774, -0.6958077549934387, -0.6306789517402649, -1.0571298599243164, -1.767244577407837, -1.8494526147842407, -0.055088382214307785, -0.09509682655334473, -0.33415335416793823, -0.22352346777915955, -0.1956627070903778, -0.2592315375804901, -0.20588061213493347, -0.24049028754234314, -0.19839069247245789, -0.3444904088973999, -0.5158801674842834, -0.4756423532962799, -0.5647597908973694, -0.556318461894989, -0.6109802722930908, -0.5578470230102539, -1.015749216079712, -1.488668441772461, -1.6580913066864014, 0.0029082484543323517, -0.19985553622245789, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -1.0385773181915283, -1.5435991287231445, -1.6624834537506104, 0.0029082484543323517, -0.19985553622245789, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -1.0385773181915283, -1.5435991287231445, -1.6624834537506104, 0.0029082484543323517, -0.19985553622245789, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -0.5472009181976318, -1.0385773181915283, -1.5435991287231445, -1.6624834537506104, -0.23670104146003723, -0.44284456968307495, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -0.7134825587272644, -1.1579666137695312, -1.7822251319885254, -1.9378225803375244, 0.48286619782447815, 0.19073572754859924, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, 0.06286415457725525, -0.23423197865486145, -1.191902995109558, -1.7416290044784546, -0.027399394661188126, -0.020994875580072403, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.49488064646720886, -0.6522001624107361, -1.2774484157562256, -1.397446870803833, 0.26776567101478577, 1.1554677486419678, 0.8775560259819031, 0.8563635945320129, 1.7805912494659424, 2.6492693424224854, 2.8188440799713135, 1.6603513956069946, 1.6650773286819458, 2.2344248294830322, 2.393714666366577, 1.3544455766677856, 1.7840405702590942, 4.493365287780762, 4.936923980712891, 2.197018623352051, 1.4678895473480225, 1.2691129446029663, 1.3260979652404785, -0.36714741587638855, 0.49056556820869446, 1.0647220611572266, 0.8315776586532593, 1.209059476852417, 1.300158143043518, 2.302149772644043, 2.004728317260742, 1.4557549953460693, 1.6543080806732178, 1.8332760334014893, 1.8401038646697998, 2.124371290206909, 3.5468647480010986, 3.6029598712921143, 1.763913869857788, 1.1508386135101318, -0.03486679866909981, -0.41912224888801575, -0.42470479011535645, 0.1057608425617218, -0.25284895300865173, 0.8980253338813782, 0.9427927732467651, 1.1709439754486084, 1.3387792110443115, 1.4710617065429688, 0.5829683542251587, 0.7279496192932129, 1.2698267698287964, 0.4011813700199127, -0.32669273018836975, -1.1808712482452393, -1.0717365741729736, -0.5156983733177185, 0.7293310761451721, 0.21955165266990662, -0.3767172694206238, -0.12457665801048279, -0.19466039538383484, -1.7002685070037842, -1.5357084274291992, 0.16274037957191467, 0.5049005746841431, -1.8196842670440674, -2.177809715270996, -0.5390123128890991, -0.6770243644714355, -2.3219549655914307, -2.4839344024658203, -2.119856357574463, -1.9645907878875732, -1.783456802368164, -1.9318557977676392, 0.17883530259132385, 0.2840755581855774, 0.20679455995559692, 0.3292901813983917, 0.7753708362579346, -0.32364723086357117, -1.3365657329559326, -1.122718334197998, -0.5476663708686829, -0.951180100440979, -1.264728307723999, -0.6469974517822266, -0.8347280025482178, -1.2471680641174316, -1.0445849895477295, 0.0014983080327510834, -0.8135199546813965, -0.8322682976722717, -0.6200221180915833, -0.037030208855867386, -0.14302048087120056, -0.24265262484550476, 0.17239275574684143, 0.9600387215614319, -0.03064608946442604, -0.5646734237670898, -0.2593619227409363, 0.21037933230400085, 0.0665988028049469, -0.33012279868125916, -0.35259416699409485, -0.06637158989906311, 0.03396817669272423, -0.11932876706123352, -0.04618588462471962, -0.4172920882701874, -0.07409217953681946, 0.3546435534954071, 0.381305456161499, -0.012733671814203262, -0.2718276381492615, -0.9279307723045349, -0.45890524983406067, -0.4768766760826111, -0.03635433688759804, 0.6546990871429443, 0.5273311734199524, 0.44117024540901184, -0.15600064396858215, -0.38575634360313416, -0.40919968485832214, -0.342804491519928, -0.08726561069488525, -0.07211494445800781, -0.21068677306175232, 0.2944125235080719, -0.08683958649635315, -0.507535457611084, -0.6206693053245544, -0.9509817361831665, -0.890899121761322, -0.8005455136299133, -0.6151890158653259, -0.4519781172275543, -0.04354742541909218, -0.586112380027771, -1.6685508489608765, -1.5562407970428467, -0.8316264748573303, -0.7219679355621338, -1.1075812578201294, -0.8425506949424744, -0.37997910380363464, -0.5145123600959778, -0.5313257575035095, -0.7697561979293823, -1.2623077630996704, -1.5333889722824097, -1.6117374897003174, -1.0865224599838257, -1.0324753522872925, -1.322502851486206, -1.2682604789733887, -1.2736281156539917, -1.1352105140686035, -1.463318109512329, -2.2723584175109863, -1.2231650352478027, -1.3967201709747314, -1.9343326091766357, -1.7703839540481567, -0.8310874104499817, -1.0614120960235596, -1.0720186233520508, -0.7828447222709656, -0.8259109854698181, -1.0765115022659302, -1.324345588684082, -1.2580749988555908, -1.0977654457092285, -1.2663754224777222, -1.4481873512268066, -1.2475509643554688, -1.432984709739685, -1.45402991771698, -1.8625260591506958, -1.27605402469635, -1.1721254587173462, -1.7010536193847656, -1.9820080995559692, -1.5535521507263184, -1.3250274658203125, -1.876044511795044, -1.3543105125427246, -0.525664746761322, -1.2242451906204224, -1.5559865236282349, -1.3479574918746948, -1.9733701944351196, -2.1439523696899414, -2.6580088138580322, -1.582463026046753, -1.4623736143112183, -1.9207464456558228, -2.0690364837646484, -1.9335882663726807, -1.0293493270874023, -0.5602289438247681, -1.5920424461364746, -2.5652756690979004, -2.1830832958221436, -2.532029151916504, -1.9268803596496582, -0.6104483008384705, -1.181146502494812, -1.7974529266357422, -1.4472827911376953, -1.758004903793335, -1.941070318222046, -1.980634093284607, -1.3922029733657837, -1.295560359954834, -1.579974889755249, -1.5985150337219238, -1.3252862691879272, -0.9420930743217468, -0.9069260358810425, -1.6314254999160767, -1.880727767944336, -1.5205166339874268, -1.8966165781021118, -1.5836880207061768, -0.6947484612464905, -0.8753918409347534, -1.6935722827911377, -1.5327826738357544, -1.3603801727294922, -1.2060198783874512, -1.2270135879516602, -1.2458388805389404, -1.248597264289856, -1.135421633720398, -1.1347413063049316, -1.152127742767334, -1.1342276334762573, -1.1099936962127686, -1.0402358770370483, -1.07166588306427, -1.0499603748321533, -1.050349235534668, -1.0746155977249146, -0.9826198220252991, -0.7398610711097717, -1.0591386556625366, -1.4777052402496338, -1.2178685665130615, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -0.9591496586799622, -0.7818731665611267, -1.0387380123138428, -1.4777052402496338, -1.2178685665130615, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -0.9591496586799622, -0.7818731665611267, -1.0387380123138428, -1.4777052402496338, -1.2178685665130615, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -1.0847759246826172, -0.9591496586799622, -0.7818731665611267, -1.0387380123138428, -1.9630203247070312, -1.7146031856536865, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.530613899230957, -1.3671607971191406, -0.9837022423744202, -1.0595766305923462, -3.1551342010498047, -2.922621726989746, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.846461772918701, -2.6566741466522217, -2.1629607677459717, -2.099520683288574, -2.7059497833251953, -2.843571186065674, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -3.019070625305176, -2.967121124267578, -2.556953191757202, -2.4226651191711426, -0.04565759748220444, -0.011152727529406548, 0.027676021680235863, 0.08398324996232986, -0.004348432645201683, -0.02047484554350376, 0.04671724885702133, 0.1354862004518509, 0.0785440132021904, -0.05811052769422531, 0.01325792632997036, 0.03138437122106552, -0.1504054069519043, -0.0765899047255516, -0.09496230632066727, -0.10627304762601852, -0.09933076053857803, 0.05051635950803757, 0.09694042056798935, -0.17087873816490173, -0.027867669239640236, -0.01416081003844738, -0.015234144404530525, 0.14355063438415527, 0.1496581882238388, 0.06825947761535645, 0.0009467136114835739, 0.026827197521924973, -0.0949665978550911, -0.07502306252717972, 0.06712892651557922, -0.04079735279083252, -0.1526215523481369, -0.2210538536310196, 0.1428317278623581, 0.18659676611423492, 0.11688585579395294, 0.05618550628423691, -0.07936329394578934, 0.02909744158387184, -0.08846662938594818, -0.34888407588005066, -0.0419878289103508, 0.039298590272665024, -0.011262768879532814, -0.2455262392759323, 0.038683414459228516, -0.1664450317621231, -0.4405011534690857, -0.02324717305600643, 0.13820311427116394, -0.07621336728334427, -0.26322734355926514, 0.08743246644735336, 0.13268974423408508, 0.0703679621219635, 0.03532113879919052, 0.025568382814526558, 0.09831488132476807, -0.0361148938536644, -0.18706294894218445, -0.0924697145819664, -0.0007361220195889473, -0.026453746482729912, -0.148996040225029, 0.1276785284280777, -0.005885211750864983, -0.1519535928964615, 0.03225407004356384, 0.2302146553993225, 0.050572991371154785, -0.046346910297870636, 0.11569371074438095, 0.10320334136486053, -0.022672953084111214, -0.011756444349884987, 0.03911362588405609, 0.1138421967625618, 0.11684220284223557, 0.10618031769990921, 0.14323392510414124, 0.11645738780498505, 0.07401079684495926, 0.039817288517951965, 0.09838643670082092, 0.1653227061033249, 0.09718504548072815, 0.036635030061006546, 0.13125894963741302, 0.18048450350761414, 0.14817218482494354, 0.1834871917963028, 0.11824323982000351, 0.03762432932853699, 0.05894777923822403, 0.1334601640701294, 0.20823337137699127, 0.15926453471183777, 0.05960796773433685, 0.15224692225456238, 0.19822587072849274, 0.14685086905956268, 0.11722192913293839, 0.09557673335075378, 0.11358805745840073, 0.0912747010588646, 0.01956356130540371, 0.022597091272473335, 0.10147484391927719, 0.12540356814861298, 0.09856818616390228, 0.012448705732822418, -0.029140984639525414, 0.022424673661589622, 0.11862765997648239, 0.17557482421398163, 0.14697568118572235, 0.05526937544345856, 0.10282985121011734, 0.11193112283945084, 0.0504714697599411, 0.05408555269241333, 0.03303776681423187, -0.011131258681416512, 0.055125683546066284, 0.061127565801143646, -0.006738454103469849, 0.03752335160970688, 0.12392450124025345, 0.09036276489496231, -0.022273527458310127, -0.006546778604388237, 0.002801841124892235, -0.00397191196680069, 0.07346472144126892, 0.14523537456989288, 0.12543930113315582, 0.09597823023796082, 0.08401381224393845, 0.04846219718456268, 0.050792187452316284, 0.039821527898311615, 0.01202455721795559, 0.05618949979543686, 0.07311264425516129, 0.043526921421289444, 0.10851232707500458, 0.18857763707637787, 0.11752504855394363, 0.04448644816875458, 0.04007907956838608, 0.03688093274831772, 0.04774803668260574, 0.13813988864421844, 0.17186571657657623, 0.16459764540195465, 0.21359451115131378, 0.1902211606502533, 0.19777031242847443, 0.16835887730121613, 0.1306014508008957, 0.10110501199960709, 0.13287413120269775, 0.1501431167125702, 0.11577590554952621, 0.1750587373971939, 0.2756967544555664, 0.2112530618906021, 0.1176222488284111, 0.07895960658788681, 0.0650036409497261, 0.06135585904121399, 0.1225900650024414, 0.12983429431915283, 0.12030581384897232, 0.18866707384586334, 0.20770767331123352, 0.2069118320941925, 0.17323198914527893, 0.15194348990917206, 0.16611771285533905, 0.19192926585674286, 0.21406589448451996, 0.20145897567272186, 0.2183755785226822, 0.2616885006427765, 0.22601519525051117, 0.17189869284629822, 0.124724842607975, 0.07242604345083237, 0.08076465874910355, 0.2001143842935562, 0.18570445477962494, 0.16416512429714203, 0.2582961320877075, 0.3153500258922577, 0.2630699872970581, 0.23933081328868866, 0.23699653148651123, 0.237254336476326, 0.21702101826667786, 0.23027555644512177, 0.31353965401649475, 0.3066166937351227, 0.2645372152328491, 0.2549492418766022, 0.2103564590215683, 0.1407535970211029, 0.1114409789443016, 0.07584016025066376, 0.16761000454425812, 0.18217016756534576, 0.180245041847229, 0.22914037108421326, 0.23933736979961395, 0.22108791768550873, 0.19738197326660156, 0.17750334739685059, 0.17461542785167694, 0.1880149394273758, 0.1829593926668167, 0.2267148345708847, 0.20246566832065582, 0.20805425941944122, 0.20432434976100922, 0.1253708153963089, 0.06484915316104889, 0.08266054838895798, 0.07262788712978363, 0.12320338189601898, 0.12413814663887024, 0.12490512430667877, 0.13330139219760895, 0.13315284252166748, 0.11997172981500626, 0.1119566336274147, 0.11373444646596909, 0.11494996398687363, 0.11841049045324326, 0.11734186112880707, 0.12050917744636536, 0.12637217342853546, 0.1138295903801918, 0.1180930957198143, 0.12151070684194565, 0.061329059302806854, 0.0719994381070137, 0.0575333908200264, 0.09713758528232574, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10182459652423859, 0.04527238756418228, 0.06156332045793533, 0.0575333908200264, 0.09713758528232574, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10182459652423859, 0.04527238756418228, 0.06156332045793533, 0.0575333908200264, 0.09713758528232574, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10116462409496307, 0.10182459652423859, 0.04527238756418228, 0.06156332045793533, 0.1047777608036995, 0.14388562738895416, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.1333359032869339, 0.13878189027309418, 0.02649310790002346, 0.06760015338659286, 0.1858815997838974, 0.25781503319740295, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.28315281867980957, 0.31429368257522583, 0.19631941616535187, 0.17615960538387299, 0.16144384443759918, 0.23268559575080872, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.26772263646125793, 0.2884288430213928, 0.19022415578365326, 0.15713582932949066, -0.1213025227189064, -0.21063467860221863, -0.17675036191940308, -0.18335039913654327, -0.28171074390411377, -0.38517457246780396, -0.31009554862976074, -0.2741643190383911, -0.29829660058021545, -0.3515319526195526, -0.3475292921066284, -0.25882142782211304, -0.3327341675758362, -0.14669445157051086, -0.18280227482318878, -0.21248161792755127, -0.14840379357337952, -0.1407332569360733, -0.13006910681724548, -0.21554936468601227, -0.254140168428421, -0.2423376739025116, -0.30374500155448914, -0.25653043389320374, -0.21606096625328064, -0.22456908226013184, -0.329342246055603, -0.2671531140804291, -0.23055854439735413, -0.24118947982788086, -0.23795510828495026, -0.2681015431880951, -0.1950927972793579, -0.25992506742477417, -0.18554866313934326, -0.12558437883853912, -0.09678466618061066, -0.0958920270204544, -0.1354321837425232, -0.14603455364704132, -0.3395833969116211, -0.5478471517562866, -0.35213953256607056, -0.1909685879945755, -0.1989241987466812, -0.37699374556541443, -0.23520442843437195, -0.3425845503807068, -0.4230332374572754, -0.3229849934577942, -0.28904712200164795, -0.20095665752887726, -0.351875364780426, -0.2093326598405838, -0.076028011739254, -0.14172686636447906, -0.1532549262046814, -0.07009685784578323, -0.09662160277366638, -0.2502869963645935, -0.3713826537132263, -0.3952432870864868, -0.2576429843902588, -0.189747616648674, -0.36073169112205505, -0.19321778416633606, -0.30521053075790405, -0.33369940519332886, -0.28176218271255493, -0.15992656350135803, -0.18014508485794067, -0.30587267875671387, -0.16389378905296326, -0.06114538758993149, -0.16266077756881714, -0.15124310553073883, -0.08891035616397858, -0.10812894999980927, -0.16703975200653076, -0.11455147713422775, -0.10504478216171265, -0.06997944414615631, -0.12262384593486786, -0.16547434031963348, -0.166794091463089, -0.1270255446434021, -0.18472644686698914, -0.252581924200058, -0.12708941102027893, -0.13575811684131622, -0.18540820479393005, -0.07620241492986679, -0.04681955277919769, -0.09498275071382523, -0.08433067053556442, -0.03303883969783783, -0.06551457196474075, -0.11635849624872208, -0.190294086933136, -0.06944358348846436, -0.03359705209732056, -0.11671900749206543, -0.15679426491260529, -0.14555856585502625, -0.15821212530136108, -0.21651124954223633, -0.2385222613811493, -0.17749154567718506, -0.221856489777565, -0.19424968957901, -0.13435107469558716, -0.1807737946510315, -0.1846526712179184, -0.12039679288864136, 0.002300173044204712, -0.051624275743961334, -0.10391700267791748, -0.1623266041278839, -0.07288579642772675, -0.09478096663951874, -0.19121049344539642, -0.20360222458839417, -0.17844392359256744, -0.22080497443675995, -0.2246662676334381, -0.1724211722612381, -0.21158888936042786, -0.24643674492835999, -0.15502139925956726, -0.1413879692554474, -0.2606746554374695, -0.1792762726545334, -0.14144423604011536, 0.004342302680015564, -0.08403627574443817, -0.11433608084917068, -0.09713373333215714, -0.1141289621591568, -0.16990023851394653, -0.14409348368644714, -0.19520138204097748, -0.20937621593475342, -0.20290586352348328, -0.17697674036026, -0.11927448958158493, -0.16270218789577484, -0.162788987159729, -0.07104925066232681, -0.10375387221574783, -0.19688300788402557, -0.10438030958175659, -0.09067916870117188, -0.026165127754211426, -0.06600827723741531, -0.09442374110221863, -0.07605167478322983, -0.11960826814174652, -0.18902334570884705, -0.17325174808502197, -0.20317944884300232, -0.1818903535604477, -0.14251549541950226, -0.1408127099275589, -0.13950055837631226, -0.15645386278629303, -0.1393040418624878, 0.0012122094631195068, -0.05045114457607269, -0.1435953974723816, -0.034528255462646484, -0.027028053998947144, -0.03164267539978027, -0.09448209404945374, -0.20173057913780212, -0.18988263607025146, -0.16309241950511932, -0.23636525869369507, -0.2578740417957306, -0.24815791845321655, -0.21985283493995667, -0.18530750274658203, -0.15761274099349976, -0.15229572355747223, -0.14754904806613922, -0.14379148185253143, -0.08240105211734772, -0.025144249200820923, -0.038797080516815186, -0.03418906033039093, -0.062151916325092316, -0.012572064995765686, -0.1037370041012764, -0.23272892832756042, -0.2410064935684204, -0.1895226538181305, -0.1379956603050232, -0.13800561428070068, -0.16592179238796234, -0.1917688250541687, -0.23237916827201843, -0.2217962145805359, -0.12791863083839417, -0.08879592269659042, -0.12471075356006622, -0.11230070143938065, -0.03579483926296234, -0.06268847733736038, -0.10645171999931335, -0.08763208985328674, 0.03020825982093811, -0.03266081213951111, -0.12015507370233536, -0.15597808361053467, -0.12206043303012848, -0.12179845571517944, -0.08582772314548492, -0.11283250153064728, -0.1540636420249939, -0.17904706299304962, -0.1514141857624054, -0.08990927785634995, -0.06974621117115021, -0.08236904442310333, -0.0587846115231514, -0.05632546544075012, -0.1112266555428505, -0.08819904923439026, -0.07663362473249435, 0.08708968758583069, 0.04083940386772156, -0.037597909569740295, -0.0679263174533844, -0.08150199055671692, -0.08059944957494736, -0.07376124709844589, -0.09103609621524811, -0.08625700324773788, -0.07761755585670471, -0.049572184681892395, -0.04048922657966614, -0.03762197494506836, -0.04155819118022919, -0.044903889298439026, -0.03868357837200165, -0.03394973278045654, -0.06649470329284668, -0.07032601535320282, 0.07235340774059296, 0.02395714819431305, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.05316481739282608, -0.07425368577241898, -0.07348102331161499, 0.07235340774059296, 0.02395714819431305, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.05316481739282608, -0.07425368577241898, -0.07348102331161499, 0.07235340774059296, 0.02395714819431305, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.054163336753845215, -0.05316481739282608, -0.07425368577241898, -0.07348102331161499, 0.0714312344789505, 0.008189335465431213, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.07972324639558792, -0.0882924497127533, -0.09748299419879913, -0.0922498106956482, -0.007044315338134766, -0.05156749486923218, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.117789626121521, -0.10748494416475296, -0.07107177376747131, -0.07949946820735931, -0.022871673107147217, -0.008119821548461914, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.046188488602638245, -0.04572206735610962, -0.052962154150009155, -0.08643808960914612, -17.527551651000977, -12.324674606323242, -12.33484172821045, -11.952408790588379, -11.71664810180664, -12.679051399230957, -11.357048988342285, -11.576676368713379, -10.693082809448242, -9.494630813598633, -11.39041519165039, -15.917858123779297, -15.104364395141602, -22.94181251525879, -19.332117080688477, -15.739562034606934, -15.129838943481445, -13.391427993774414, -12.439029693603516, -13.277315139770508, -8.422211647033691, -16.053817749023438, -18.97378158569336, -13.559954643249512, -6.026393413543701, -5.709572792053223, -11.264047622680664, -8.4676513671875, -10.787543296813965, -17.131620407104492, -17.05589485168457, -8.691097259521484, -23.359437942504883, -25.44431495666504, -12.8006591796875, -7.49830961227417, -10.626179695129395, -14.239686965942383, -13.257926940917969, -9.567434310913086, -15.120595932006836, -18.482267379760742, -19.958635330200195, -12.890827178955078, -13.889538764953613, -16.02269744873047, -11.754942893981934, -15.070405006408691, -19.566404342651367, -16.4329776763916, -8.654813766479492, -18.450895309448242, -20.135650634765625, -15.179367065429688, -7.400177478790283, -9.520174980163574, -14.65829849243164, -13.4231595993042, -10.089835166931152, -10.780149459838867, -13.853541374206543, -17.779584884643555, -12.585362434387207, -13.49327278137207, -13.002269744873047, -11.478409767150879, -13.552133560180664, -14.713533401489258, -14.706889152526855, -10.2400484085083, -13.106748580932617, -15.590391159057617, -15.32911205291748, -7.678158760070801, -6.378975868225098, -10.842227935791016, -13.256942749023438, -8.164061546325684, -5.453906059265137, -5.1847429275512695, -5.290215015411377, -6.456506729125977, -7.741284370422363, -8.680336952209473, -8.221694946289062, -6.393072605133057, -8.064582824707031, -7.325323104858398, -8.510892868041992, -7.253213882446289, -7.434506416320801, -9.124051094055176, -5.378619194030762, -5.435390472412109, -10.61376953125, -11.607916831970215, -5.520042896270752, -4.970311164855957, -6.838679313659668, -8.131688117980957, -6.4932637214660645, -5.426150321960449, -5.271143436431885, -4.119148254394531, -6.184053421020508, -6.930334568023682, -6.557980060577393, -9.930089950561523, -8.059242248535156, -6.769545555114746, -9.752114295959473, -8.700422286987305, -5.815823554992676, -10.815744400024414, -11.089727401733398, -6.690587997436523, -5.574078559875488, -5.547885417938232, -7.305611610412598, -4.862826347351074, -4.290364742279053, -3.927774667739868, -4.347164154052734, -7.891843318939209, -7.245487213134766, -7.219954490661621, -8.503095626831055, -5.124917030334473, -6.187857151031494, -8.057318687438965, -6.967708587646484, -8.063666343688965, -13.167240142822266, -12.472773551940918, -6.326814651489258, -4.956003665924072, -4.116926193237305, -4.997081756591797, -3.8022584915161133, -2.8573992252349854, -4.652605056762695, -5.945921421051025, -8.334688186645508, -8.125320434570312, -8.5938081741333, -9.473081588745117, -6.279255390167236, -5.519325256347656, -6.450611591339111, -6.482449054718018, -7.316248893737793, -11.983362197875977, -12.020242691040039, -7.304089546203613, -5.44485330581665, -6.769966125488281, -8.689615249633789, -8.820549964904785, -8.67503833770752, -9.18975830078125, -8.231934547424316, -9.556923866271973, -9.978166580200195, -9.021868705749512, -7.716916561126709, -7.115172386169434, -4.6879730224609375, -6.0349507331848145, -6.391895294189453, -8.027811050415039, -13.627544403076172, -12.39508056640625, -9.169947624206543, -8.693912506103516, -9.372626304626465, -10.755840301513672, -10.059663772583008, -8.864245414733887, -9.870429992675781, -8.372817039489746, -10.291255950927734, -11.808059692382812, -10.469855308532715, -9.400835037231445, -8.778595924377441, -7.036510944366455, -9.544164657592773, -8.534101486206055, -8.462655067443848, -13.724600791931152, -14.117548942565918, -10.196998596191406, -9.331826210021973, -9.47948932647705, -10.866983413696289, -10.040894508361816, -7.76535701751709, -7.804055690765381, -7.0811357498168945, -10.5258207321167, -12.732547760009766, -12.091018676757812, -12.135345458984375, -10.245148658752441, -9.627071380615234, -11.623807907104492, -11.088468551635742, -10.577620506286621, -13.437716484069824, -13.961055755615234, -9.902486801147461, -8.95008373260498, -9.53951358795166, -11.165573120117188, -10.841996192932129, -9.778614044189453, -10.281866073608398, -9.627523422241211, -10.774391174316406, -10.305102348327637, -10.002021789550781, -9.840384483337402, -8.38787841796875, -8.738028526306152, -9.621980667114258, -10.631356239318848, -9.841009140014648, -12.043659210205078, -14.167165756225586, -8.767244338989258, -7.044878005981445, -7.406538963317871, -7.722844123840332, -7.790442943572998, -8.158819198608398, -8.280957221984863, -8.504807472229004, -8.185771942138672, -7.397065162658691, -7.594342231750488, -7.534460544586182, -7.327742576599121, -7.1636176109313965, -7.189820766448975, -8.445311546325684, -8.50221061706543, -11.953985214233398, -13.69445514678955, -8.745835304260254, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -8.461326599121094, -8.520137786865234, -12.002758026123047, -13.69445514678955, -8.745835304260254, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -8.461326599121094, -8.520137786865234, -12.002758026123047, -13.69445514678955, -8.745835304260254, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -6.856546878814697, -8.461326599121094, -8.520137786865234, -12.002758026123047, -16.00082015991211, -12.250385284423828, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -9.641777038574219, -10.891728401184082, -9.392444610595703, -12.48971176147461, -17.532712936401367, -14.390854835510254, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.220030784606934, -12.406496047973633, -12.146547317504883, -15.73952865600586, -17.853906631469727, -17.201169967651367, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.560737609863281, -15.74373722076416, -17.445524215698242, -18.637128829956055, 0.3362054228782654, 1.387047290802002, -0.40506884455680847, -1.3246972560882568, -0.5156774520874023, -0.03941615670919418, -0.5959390997886658, 0.09899602085351944, 0.16603487730026245, -1.4941174983978271, -1.9573167562484741, -0.8374674916267395, 0.6030144095420837, 0.13297438621520996, -0.2374768853187561, -0.3448196053504944, 0.47581976652145386, 0.02544543892145157, -1.2210460901260376, 0.6305495500564575, 0.9629701375961304, -0.4708755314350128, -0.6711498498916626, 0.9751083850860596, 0.9941984415054321, 0.07572103291749954, 0.372833251953125, -0.1323009729385376, -2.263389825820923, -1.0274392366409302, 0.6930482387542725, -0.21685442328453064, -2.089169979095459, -2.1251156330108643, -0.022897712886333466, 0.7375053763389587, -0.6049174666404724, -1.728384256362915, 0.37992918491363525, 1.314117431640625, -0.46332019567489624, -1.4170515537261963, 0.46760982275009155, 0.8119966387748718, -0.948016345500946, -1.0295003652572632, -0.27588871121406555, -1.2101043462753296, -0.5790303349494934, -0.5778685808181763, -0.5811201930046082, -1.7265068292617798, -1.825073480606079, 1.1042009592056274, 1.31804358959198, -0.5189794898033142, -1.55605947971344, 0.504651665687561, 1.6470073461532593, 0.19429200887680054, -1.4594666957855225, -0.22095096111297607, 0.23110195994377136, -1.2232356071472168, -0.9388749599456787, 0.3633132874965668, -0.14783066511154175, -1.4023891687393188, -1.0340241193771362, -0.24664825201034546, -1.025725245475769, -0.9477630257606506, 0.28809043765068054, 0.9233001470565796, -0.9933795928955078, -1.8674280643463135, 0.8890135884284973, 0.9438997507095337, 0.47345679998397827, -0.26307231187820435, -0.2902691662311554, -0.27729520201683044, 0.039589978754520416, -0.21771514415740967, -0.34308508038520813, -0.6410943269729614, -1.2787330150604248, -1.2536197900772095, -1.1638096570968628, -0.5300289988517761, -0.25363945960998535, -0.047204166650772095, 0.22005730867385864, -1.7738630771636963, -2.2759552001953125, 0.7702581286430359, 0.5146287679672241, -0.23998185992240906, -0.3991791605949402, -0.6522757411003113, -0.6094637513160706, -0.2804715037345886, 0.03004736453294754, -0.5461329817771912, -0.8787431716918945, -0.8493468165397644, -1.219228982925415, 0.062386296689510345, 0.4055824279785156, -0.4949812591075897, -0.8392965793609619, -0.22676636278629303, -1.9938721656799316, -2.712514877319336, 0.5182144045829773, 0.8528032898902893, -0.6557750701904297, -0.9801173210144043, -0.7475380897521973, -0.7520347237586975, -0.4518342912197113, -0.5152449011802673, -0.6975041031837463, -0.14969661831855774, -0.0024612322449684143, -0.9708731174468994, 0.11143758147954941, 0.8896793723106384, -0.29223746061325073, -0.8896865248680115, -0.5280264616012573, -1.8641085624694824, -2.77321720123291, 0.3967282772064209, 0.7527726888656616, -0.4331270754337311, -0.7400575280189514, -0.16759614646434784, 0.1761496663093567, 0.48914843797683716, -0.514802098274231, -1.0612986087799072, -0.26448294520378113, -0.24382665753364563, -0.9003355503082275, -0.2513127326965332, 0.7970386147499084, -0.3800097405910492, -0.6508147120475769, -1.0662473440170288, -1.4486689567565918, -1.8852568864822388, 0.2447243332862854, 0.25721314549446106, 0.02282632142305374, 0.006454475224018097, 0.17302730679512024, 0.22923928499221802, 0.32315927743911743, -0.43657806515693665, -1.521193504333496, -0.6116043329238892, -0.22134235501289368, -0.6905621290206909, -0.11867551505565643, 0.6859607696533203, -0.021070800721645355, -0.43717387318611145, -0.9141277074813843, -1.1267380714416504, -1.3117517232894897, 0.31189584732055664, 0.8314752578735352, 0.21335583925247192, 0.5071605443954468, 0.4975837469100952, 0.4954237937927246, 0.08046675473451614, -0.19071221351623535, -1.1645103693008423, -0.6130303740501404, -0.38668540120124817, -0.9907865524291992, -1.0073682069778442, -0.1437385082244873, -0.3524085283279419, -0.8075615167617798, -0.6469950675964355, -1.3680084943771362, -1.6531436443328857, 0.45683276653289795, 1.3162119388580322, 0.680445671081543, 0.9685404300689697, 0.5700640082359314, 0.3259200155735016, 0.15756791830062866, 0.11412472277879715, -0.6428754329681396, -0.7607466578483582, -0.6694660782814026, -1.086228609085083, -0.6886950731277466, -0.18808692693710327, -0.5420722961425781, -0.5823903679847717, -0.553031325340271, -2.216463565826416, -2.9048032760620117, 1.149470329284668, 2.032822847366333, 0.4813922047615051, 0.7065516710281372, 0.7737948298454285, 0.5590217113494873, 0.22387826442718506, 0.0822528675198555, -0.41747885942459106, -0.31904202699661255, -0.1188744381070137, -0.3911678194999695, -0.12642115354537964, -0.0427900031208992, -0.4723653793334961, -0.13817527890205383, -0.12530942261219025, -2.2055301666259766, -2.958944797515869, 1.534454107284546, 2.2234272956848145, 0.3282700777053833, 0.3035500645637512, 0.2248762547969818, 0.14338034391403198, 0.14209380745887756, 0.07900843769311905, -0.0015389248728752136, 0.03270644694566727, 0.19710761308670044, 0.15652254223823547, 0.11549737304449081, 0.096328504383564, 0.05160406976938248, 0.10839744657278061, -0.14908209443092346, -2.2212209701538086, -2.7898759841918945, 1.7066705226898193, 2.075322151184082, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, -0.2618427872657776, -2.2273759841918945, -2.7812869548797607, 1.7066705226898193, 2.075322151184082, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, -0.2618427872657776, -2.2273759841918945, -2.7812869548797607, 1.7066705226898193, 2.075322151184082, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, 0.12317896634340286, -0.2618427872657776, -2.2273759841918945, -2.7812869548797607, 1.7535096406936646, 2.234581708908081, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.4126027822494507, 0.005567409098148346, -2.3568294048309326, -3.1761722564697266, -0.03353609889745712, 0.8394335508346558, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -0.3808000087738037, -1.085946798324585, -2.3254947662353516, -3.125096321105957, -1.0178815126419067, 0.006128139793872833, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -0.9493610858917236, -1.447989821434021, -1.8615291118621826, -2.287703514099121, 0.8013898134231567, 0.5269886255264282, 0.24337339401245117, 0.8940876722335815, 1.7639342546463013, 0.7181222438812256, 1.8049215078353882, 1.55772066116333, 1.4337712526321411, 2.359147310256958, 2.4899373054504395, 1.7886697053909302, 1.9850996732711792, 4.953189849853516, 4.832862854003906, 2.615246295928955, 1.3438657522201538, 0.5846723318099976, -0.11154621839523315, -0.4068284332752228, 0.704302191734314, -1.7118536233901978, -1.2508569955825806, 0.512877345085144, 0.2218364179134369, 2.422542095184326, 2.5975990295410156, 2.3191866874694824, 0.3756904900074005, 0.8374545574188232, 0.6329282522201538, 0.8993271589279175, -0.5980136394500732, -1.4683669805526733, -0.09190031886100769, 0.2657676041126251, 0.021485477685928345, 0.03225091099739075, -0.8938432931900024, 0.1505553424358368, -2.3229622840881348, -1.5493898391723633, 0.24825361371040344, 0.7623312473297119, -0.975817084312439, -1.5534833669662476, 0.45992282032966614, -1.015650749206543, -1.6252509355545044, -2.4180335998535156, -1.5111271142959595, -2.465283155441284, -2.9181408882141113, -0.6356503963470459, -0.3196174204349518, 0.3019910156726837, 0.3160367012023926, -0.8375619649887085, -0.6194185018539429, -1.6029942035675049, -1.165931224822998, -0.14534202218055725, 0.4280335009098053, -1.8945783376693726, -2.9151830673217773, -0.34045612812042236, -0.9833698272705078, -2.5701611042022705, -4.109824180603027, -2.6532421112060547, -1.5944664478302002, -1.3919175863265991, -2.12624192237854, -0.394070029258728, -0.0984555184841156, -0.053521424531936646, -0.051142603158950806, 0.7057862281799316, -0.038080960512161255, -0.8306069374084473, -1.1017094850540161, -0.7681745290756226, -0.07490554451942444, -0.07035215198993683, -0.2873126268386841, -0.8287562131881714, -1.0536507368087769, -1.5167145729064941, -1.1233137845993042, -1.4108678102493286, -0.8859843015670776, -0.4845334589481354, -0.6230061054229736, -0.8295093774795532, -0.6362826824188232, -0.0038569867610931396, 0.6052764654159546, -0.12366661429405212, -0.9634518623352051, -0.9425952434539795, -0.6022762656211853, -0.0058629512786865234, -0.2857525944709778, -0.7606981992721558, -0.28222155570983887, -0.9453915357589722, -0.8222231864929199, -0.5574313998222351, -1.2308486700057983, -0.47000184655189514, -0.15299853682518005, -0.22849026322364807, -0.5185394287109375, -0.829403281211853, -0.8592242002487183, -0.9674861431121826, -1.362842082977295, -0.9717333316802979, -0.5746294260025024, -0.33556878566741943, -0.15209662914276123, -0.6086777448654175, -1.0449362993240356, -0.8908599615097046, -1.5985355377197266, -1.0220147371292114, -0.11364161968231201, -0.4797847270965576, -0.23123635351657867, -0.5078144073486328, -0.4835301339626312, -0.35522791743278503, -0.5148736238479614, -0.6554363965988159, -0.9496084451675415, -1.1753578186035156, -1.027455449104309, -0.7560206651687622, -0.8792177438735962, -2.03000545501709, -2.393918991088867, -1.3783040046691895, -0.9879127740859985, -1.7731109857559204, -1.6408032178878784, -0.8258506059646606, -0.7645562887191772, -0.8602652549743652, -1.1007976531982422, -1.6881195306777954, -1.1428499221801758, -0.8761757612228394, -0.987200140953064, -1.1501387357711792, -1.4429486989974976, -2.1969244480133057, -2.3885934352874756, -1.9375065565109253, -2.6251490116119385, -3.2692008018493652, -2.150365114212036, -1.1458574533462524, -1.8393573760986328, -2.2262959480285645, -1.322040319442749, -1.6588528156280518, -1.9112101793289185, -1.6677348613739014, -1.6478344202041626, -1.0078037977218628, -0.8280479907989502, -1.0309727191925049, -1.687241554260254, -2.639265775680542, -3.210277557373047, -3.176950693130493, -2.5685112476348877, -2.5708329677581787, -3.124141216278076, -2.562009334564209, -1.0186008214950562, -1.8371232748031616, -2.578169345855713, -2.0973761081695557, -2.379213809967041, -2.3525335788726807, -1.820149540901184, -1.4122717380523682, -1.3702832460403442, -0.971845269203186, -0.4738459289073944, -1.942009449005127, -2.8212850093841553, -3.1273138523101807, -2.042487621307373, -1.7663748264312744, -1.8883787393569946, -2.218308210372925, -2.085590362548828, -1.244783639907837, -1.2778208255767822, -2.3743011951446533, -2.572950839996338, -2.101304531097412, -1.9338717460632324, -1.9702088832855225, -1.2558497190475464, -1.0857430696487427, -0.8441365957260132, 0.053299397230148315, -0.9896070957183838, -1.7751213312149048, -1.740403175354004, -1.3501731157302856, -1.385704755783081, -1.644439697265625, -1.580257773399353, -1.0897425413131714, -0.5923842787742615, -0.634386420249939, -1.512215495109558, -1.526219367980957, -0.9864451885223389, -1.14604914188385, -1.301658272743225, -0.7102792263031006, -0.35506704449653625, -0.40759041905403137, 0.10103031992912292, -0.18930187821388245, -0.7260110378265381, -0.8612046241760254, -0.9281934499740601, -0.8887709379196167, -0.7396050691604614, -0.8267253637313843, -0.9706687927246094, -0.963233232498169, -0.6471740007400513, -0.49158984422683716, -0.517386794090271, -0.4422195553779602, -0.4593329131603241, -0.5188702940940857, -0.3883098065853119, 0.04630640149116516, -0.05174437165260315, 0.2019648253917694, 0.04982319474220276, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.2408568561077118, 0.059076935052871704, -0.034725576639175415, 0.2019648253917694, 0.04982319474220276, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.2408568561077118, 0.059076935052871704, -0.034725576639175415, 0.2019648253917694, 0.04982319474220276, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.3846715986728668, -0.2408568561077118, 0.059076935052871704, -0.034725576639175415, -0.8822662830352783, -1.0321141481399536, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -1.2737222909927368, -0.9809348583221436, -0.31830015778541565, -0.17569807171821594, -2.906771183013916, -3.055342435836792, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.0556774139404297, -3.175600528717041, -2.673586845397949, -1.9000085592269897, -2.915782928466797, -3.072134256362915, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.1284852027893066, -3.495041847229004, -3.4267892837524414, -2.390611410140991, 0.016653265804052353, -0.0631757527589798, -0.06463386118412018, -0.0469907782971859, 0.03287089243531227, 0.05226181820034981, 0.03443470597267151, 0.02338806539773941, 0.028038252145051956, 0.04984915256500244, 0.014919739216566086, 0.06359593570232391, 0.05508928373456001, 0.052929941564798355, 0.013104591518640518, -0.07151009142398834, -0.10314691066741943, -0.09167414903640747, -0.09134604036808014, 0.061319876462221146, -0.03754756227135658, 0.030796241015195847, 0.10205771774053574, 0.12455351650714874, 0.02894126996397972, 0.10986264050006866, 0.09755340218544006, 0.10512419044971466, 0.08808344602584839, 0.09150862693786621, 0.14153993129730225, 0.016305524855852127, 0.1080111414194107, 0.11229453235864639, -0.06207553669810295, -0.02106139436364174, -0.016440432518720627, -0.032939109951257706, 0.05506483092904091, -0.012456577271223068, 0.007881488651037216, 0.056047771126031876, 0.08957454562187195, 0.031700972467660904, 0.06130654737353325, 0.1164126992225647, 0.04076911509037018, 0.03910144045948982, 0.046091947704553604, 0.2075074464082718, 0.12447500228881836, 0.08881522715091705, 0.1363733857870102, -0.046336639672517776, -0.015915673226118088, 0.017889179289340973, 0.007559552788734436, 0.07202187925577164, -0.006936367601156235, -0.041759561747312546, -0.04166492447257042, 0.0023171566426753998, -0.01431269571185112, 0.026996325701475143, 0.008148763328790665, 0.0740194022655487, 0.06449215859174728, -0.02540668472647667, 0.12790730595588684, 0.20525676012039185, 0.10600441694259644, 0.050234463065862656, -0.02546822652220726, -0.02153821662068367, -0.04845341667532921, -0.03393338993191719, 0.11390870809555054, -0.0008510388433933258, 0.050119929015636444, 0.04437730088829994, 0.04978640004992485, 0.059466034173965454, 0.046798184514045715, 0.029120568186044693, 0.05971132591366768, 0.08937785029411316, 0.08588729053735733, 0.024611230939626694, 0.07143952697515488, 0.0861726701259613, 0.06116349622607231, 0.07522481679916382, 0.01738720014691353, -0.022922981530427933, 0.011453498154878616, 0.10541243851184845, 0.031389590352773666, 0.07501162588596344, 0.10694776475429535, 0.13955408334732056, 0.0917229950428009, 0.09878513216972351, 0.092064768075943, 0.03371104970574379, 0.04002438113093376, 0.05560096353292465, 0.04143659770488739, 0.053498655557632446, 0.05113205686211586, 0.07764708995819092, 0.1456996351480484, 0.04918094724416733, -0.10648201406002045, -0.059650350362062454, 0.16368034482002258, 0.08103024959564209, 0.0973922610282898, 0.15171946585178375, 0.16312915086746216, 0.08035285770893097, 0.10749603807926178, 0.07714216411113739, 0.03394316881895065, 0.04815676808357239, 0.044027578085660934, 0.07686987519264221, 0.07564099133014679, 0.05120840296149254, 0.1172134280204773, 0.1385556310415268, 0.042496658861637115, -0.08780239522457123, -0.05189426615834236, 0.19219593703746796, 0.05257543548941612, 0.020550835877656937, 0.08301665633916855, 0.10820630192756653, 0.010102014988660812, -0.02137209102511406, -0.012279514223337173, 0.0061254315078258514, 0.01811884343624115, 0.0007977969944477081, 0.043700627982616425, 0.06619927287101746, 0.03280458599328995, 0.08520639687776566, 0.07690492272377014, -0.005578774958848953, -0.13754402101039886, -0.10088467597961426, 0.09870986640453339, -0.019679192453622818, 0.015293721109628677, 0.040209583938121796, 0.055097050964832306, 0.03675715625286102, 0.0469445139169693, 0.04363223910331726, 0.016536779701709747, 0.03924792259931564, 0.02455480396747589, -0.004148382693529129, 0.0003384426236152649, -0.0033018924295902252, 0.05043741315603256, 0.02882792428135872, -0.011072475463151932, -0.10225509107112885, -0.1113712340593338, 0.060402724891901016, -0.02925746515393257, -0.013690810650587082, -0.04630829021334648, 0.014326754957437515, 0.051731210201978683, 0.02819983661174774, 0.01926710456609726, 0.026992667466402054, 0.16310079395771027, 0.1319616138935089, 0.04864320158958435, 0.06311008334159851, 0.09061002731323242, 0.05277874320745468, 0.059578120708465576, 0.027946550399065018, -0.09925152361392975, -0.08635470271110535, 0.07745910435914993, -0.03158408775925636, 0.019676703959703445, -0.003565426915884018, 0.07129833102226257, 0.11705541610717773, 0.10555818676948547, 0.0804600939154625, 0.09706613421440125, 0.20848791301250458, 0.2217193990945816, 0.12467731535434723, 0.14057517051696777, 0.1629030406475067, 0.0812220573425293, 0.08220402896404266, 0.048868559300899506, -0.020669881254434586, 0.0032052136957645416, 0.03211601823568344, -0.06578974425792694, 0.06712807714939117, 0.09285677969455719, 0.09443336725234985, 0.1093602180480957, 0.14088384807109833, 0.13996823132038116, 0.13174869120121002, 0.13610513508319855, 0.10120487213134766, 0.09427563846111298, 0.11709785461425781, 0.09632855653762817, 0.0861392617225647, 0.06259877234697342, 0.035503946244716644, 0.008655600249767303, 0.014397960156202316, 0.004978660494089127, -0.09217946231365204, 0.04566292464733124, 0.061902474611997604, 0.07516791671514511, 0.09172335267066956, 0.09137200564146042, 0.08469077199697495, 0.08684874325990677, 0.06883497536182404, 0.03702804073691368, 0.04635288193821907, 0.05186450853943825, 0.04302135854959488, 0.05067472159862518, 0.040505267679691315, 0.02571776509284973, 0.027717582881450653, 0.03552192822098732, -0.0019704438745975494, -0.10033456981182098, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.026122648268938065, 0.02653152123093605, 0.03298712894320488, -0.0019704438745975494, -0.10033456981182098, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.026122648268938065, 0.02653152123093605, 0.03298712894320488, -0.0019704438745975494, -0.10033456981182098, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.028806913644075394, 0.026122648268938065, 0.02653152123093605, 0.03298712894320488, -0.0034690462052822113, -0.10399624705314636, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.022295843809843063, 0.012269046157598495, 0.03904168680310249, 0.05787859484553337, -0.018896576017141342, -0.1084454208612442, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.016976673156023026, -0.030985619872808456, 0.042586278170347214, 0.06517298519611359, 0.04464187100529671, -0.024386782199144363, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.028071608394384384, 0.018087927252054214, 0.045896127820014954, 0.04721731320023537, -0.19962207973003387, -0.1707695871591568, -0.11268715560436249, -0.14721213281154633, -0.1847068816423416, -0.16175638139247894, -0.15100684762001038, -0.13656222820281982, -0.16935200989246368, -0.15649288892745972, -0.14801573753356934, -0.21577852964401245, -0.29079630970954895, -0.09935511648654938, 0.0654153823852539, -0.05648214370012283, -0.13643592596054077, -0.21134187281131744, -0.2647433280944824, -0.1388283371925354, -0.10483353585004807, -0.16241002082824707, -0.003446638584136963, -0.09223854541778564, -0.2923296391963959, -0.2264082133769989, -0.13264982402324677, -0.19599118828773499, -0.28795862197875977, -0.11023123562335968, -0.12100563943386078, -0.3161337971687317, -0.265107125043869, 0.04349192976951599, 0.1271456778049469, -0.1389283835887909, -0.19618210196495056, -0.2100622057914734, -0.09110060334205627, -0.1219848021864891, -0.29253798723220825, -0.10727808624505997, 0.03038230538368225, -0.1549115628004074, -0.21712848544120789, -0.1769542396068573, -0.10486045479774475, -0.32789504528045654, -0.08691687136888504, -0.13326683640480042, -0.2403050661087036, -0.19462788105010986, -0.049653440713882446, 0.15820197761058807, -0.046974800527095795, -0.06051190197467804, -0.07921089231967926, -0.08819207549095154, -0.08354906737804413, -0.26789742708206177, -0.22436928749084473, -0.071950264275074, -0.15704040229320526, -0.24949416518211365, -0.1645757257938385, -0.06932878494262695, -0.20546552538871765, -0.0812448263168335, -0.18659350275993347, -0.1683615744113922, -0.02638126164674759, -0.006408035755157471, 0.0013200640678405762, -0.1264486312866211, -0.13051679730415344, -0.13620716333389282, -0.04595785588026047, -0.10494783520698547, -0.13986077904701233, -0.09920378029346466, -0.10194963216781616, -0.06607399880886078, -0.05204028636217117, -0.05790984630584717, -0.09707988053560257, -0.11682891100645065, -0.07876504957675934, -0.13059450685977936, -0.1507871299982071, -0.16787150502204895, -0.15825456380844116, -0.07119666039943695, -0.12068136036396027, -0.1973564475774765, -0.2039695680141449, -0.08177903294563293, -0.1297646164894104, -0.1400822103023529, -0.09620646387338638, -0.09373359382152557, -0.10060234367847443, -0.0970703661441803, -0.09160640090703964, -0.11845748126506805, -0.12351155281066895, -0.15608391165733337, -0.18895167112350464, -0.1670677363872528, -0.216656893491745, -0.19081620872020721, -0.09592298418283463, -0.17073649168014526, -0.22455769777297974, -0.16521364450454712, -0.13898517191410065, -0.12127937376499176, -0.14284704625606537, -0.12314949184656143, -0.1183759868144989, -0.14295059442520142, -0.17183999717235565, -0.1648022085428238, -0.12871454656124115, -0.08918632566928864, -0.1415904313325882, -0.15764597058296204, -0.12716618180274963, -0.1921170949935913, -0.13991641998291016, -0.10743506252765656, -0.16855773329734802, -0.22612552344799042, -0.15209077298641205, -0.1073494479060173, -0.1355036199092865, -0.18567098677158356, -0.16076338291168213, -0.21696583926677704, -0.2190600335597992, -0.21442517638206482, -0.19734792411327362, -0.1309722512960434, -0.10814955085515976, -0.11327597498893738, -0.09574360400438309, -0.08719166368246078, -0.13355721533298492, -0.09139208495616913, -0.07180583477020264, -0.10673235356807709, -0.15014803409576416, -0.13847827911376953, -0.11210650950670242, -0.06272108107805252, -0.11731268465518951, -0.1067863255739212, -0.15659408271312714, -0.10975322127342224, -0.09058309346437454, -0.06643501669168472, -0.055572714656591415, -0.032875463366508484, -0.07098370790481567, -0.07295773923397064, -0.07961820811033249, -0.11486223340034485, -0.10989443957805634, -0.056947655975818634, -0.0765548050403595, -0.1498807817697525, -0.1545083224773407, -0.015931300818920135, 0.0654398500919342, -0.09416426718235016, -0.13060405850410461, -0.10592567175626755, -0.09765008091926575, -0.09872035682201385, -0.09690417349338531, -0.13106507062911987, -0.09546983987092972, -0.08595389872789383, -0.08890169113874435, -0.0829770490527153, -0.08526912331581116, -0.15207567811012268, -0.07345294207334518, -0.11018801480531693, -0.15119118988513947, -0.20014673471450806, 0.06679819524288177, 0.12460021674633026, -0.02999188005924225, -0.04939313232898712, -0.003390982747077942, -0.0034947469830513, -0.05170077085494995, -0.08792021870613098, -0.10356593132019043, -0.04483147710561752, -0.03214040398597717, -0.01773826777935028, 0.012454107403755188, -0.017050787806510925, -0.10895726084709167, -0.023583292961120605, -0.03777444362640381, -0.12584538757801056, -0.18115125596523285, 0.1155155748128891, 0.20711304247379303, 0.08565293252468109, 0.09804962575435638, 0.1154412180185318, 0.1049194484949112, 0.11464644968509674, 0.11047200858592987, 0.10647006332874298, 0.153304323554039, 0.10923251509666443, 0.08143331110477448, 0.08838988840579987, 0.06794063746929169, 0.06384213268756866, 0.08601664006710052, 0.07857166230678558, 0.005603626370429993, -0.06169552356004715, 0.1355568915605545, 0.21295233070850372, 0.11018075048923492, 0.1068253368139267, 0.10360774397850037, 0.11432471871376038, 0.13107909262180328, 0.13285677134990692, 0.12681977450847626, 0.11510305106639862, 0.10965614020824432, 0.10744014382362366, 0.10733453929424286, 0.10116957128047943, 0.10318107903003693, 0.10582129657268524, 0.10489882528781891, 0.03600536286830902, -0.05598384886980057, 0.14461316168308258, 0.20705600082874298, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.10687287151813507, 0.03714323043823242, -0.05335118621587753, 0.14461316168308258, 0.20705600082874298, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.10687287151813507, 0.03714323043823242, -0.05335118621587753, 0.14461316168308258, 0.20705600082874298, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.0943170040845871, 0.10687287151813507, 0.03714323043823242, -0.05335118621587753, 0.08586971461772919, 0.18013779819011688, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.08150434494018555, 0.0964193046092987, 0.05763848125934601, -0.04533139616250992, -0.06055012345314026, -0.007049724459648132, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.058054354041814804, -0.04987592250108719, -0.055213190615177155, -0.10150279104709625, -0.11547636240720749, -0.05816230922937393, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.11687897145748138, -0.08695481717586517, -0.08384107053279877, -0.08295980095863342, -17.315895080566406, -15.568239212036133, -14.939210891723633, -14.373872756958008, -14.086349487304688, -14.533422470092773, -15.705780029296875, -15.5361909866333, -13.02778434753418, -17.079919815063477, -18.145854949951172, -21.211471557617188, -27.185575485229492, -30.652475357055664, -25.21699333190918, -19.50179100036621, -18.204458236694336, -19.49207305908203, -16.151010513305664, -15.287179946899414, -13.615744590759277, -21.986173629760742, -24.791170120239258, -12.338440895080566, -9.162145614624023, -12.523694038391113, -19.006704330444336, -15.24238395690918, -22.6324405670166, -25.369775772094727, -17.449106216430664, -20.533933639526367, -29.024314880371094, -26.252931594848633, -14.365108489990234, -14.353992462158203, -18.99663543701172, -17.050010681152344, -14.02688217163086, -13.245790481567383, -24.185976028442383, -26.656789779663086, -18.716650009155273, -13.151208877563477, -20.757144927978516, -22.517959594726562, -13.00269889831543, -24.991567611694336, -29.93100357055664, -20.214889526367188, -14.517302513122559, -26.029754638671875, -24.891220092773438, -15.890762329101562, -12.008658409118652, -13.44468879699707, -14.084196090698242, -12.456010818481445, -13.986245155334473, -16.40616798400879, -19.937631607055664, -18.897153854370117, -13.894852638244629, -21.122865676879883, -21.018896102905273, -13.914070129394531, -17.953685760498047, -20.634679794311523, -20.94306182861328, -12.646627426147461, -14.569541931152344, -14.727970123291016, -13.93962574005127, -9.725776672363281, -11.464163780212402, -12.818680763244629, -12.349823951721191, -10.872943878173828, -6.663750171661377, -5.51622200012207, -3.8938188552856445, -6.638138294219971, -11.033121109008789, -10.936429977416992, -10.024858474731445, -6.636271953582764, -9.30091667175293, -10.823171615600586, -10.378788948059082, -9.954411506652832, -7.791234970092773, -7.821681499481201, -6.829599857330322, -8.499085426330566, -11.14630126953125, -10.026413917541504, -9.940330505371094, -5.58632755279541, -6.658782005310059, -6.079251766204834, -7.1051740646362305, -6.901203632354736, -5.153542995452881, -4.660452365875244, -5.280272960662842, -6.757818222045898, -8.111710548400879, -12.126697540283203, -12.080761909484863, -8.746132850646973, -11.309335708618164, -12.241762161254883, -10.939899444580078, -11.854941368103027, -9.925933837890625, -11.128503799438477, -6.639270305633545, -7.053540229797363, -7.595656871795654, -7.808807849884033, -7.78914213180542, -4.916823863983154, -6.068387985229492, -8.621342658996582, -6.195331573486328, -6.763535022735596, -10.36302661895752, -8.930858612060547, -9.95206069946289, -10.997930526733398, -11.340995788574219, -13.751012802124023, -16.656957626342773, -10.34337329864502, -10.923439025878906, -8.270952224731445, -7.352338790893555, -8.31593132019043, -7.560425281524658, -7.714914321899414, -7.241543292999268, -8.062300682067871, -8.292783737182617, -7.465731143951416, -8.651897430419922, -9.96424674987793, -5.673026084899902, -7.613403797149658, -9.997424125671387, -10.300798416137695, -13.828380584716797, -17.45442771911621, -10.188093185424805, -9.952461242675781, -6.250464916229248, -6.1532158851623535, -9.573265075683594, -11.034899711608887, -9.114415168762207, -9.226256370544434, -9.712623596191406, -8.753522872924805, -9.816338539123535, -11.095235824584961, -9.29939079284668, -5.277474403381348, -2.174772262573242, -6.130156517028809, -9.064661979675293, -12.675590515136719, -17.7703857421875, -12.154938697814941, -11.462576866149902, -10.622381210327148, -11.994357109069824, -11.614580154418945, -10.747536659240723, -8.556262016296387, -10.017817497253418, -10.067623138427734, -9.310526847839355, -11.042547225952148, -12.649690628051758, -11.226190567016602, -8.688066482543945, -5.4154887199401855, -10.537864685058594, -11.063666343688965, -10.512762069702148, -14.944360733032227, -12.72607707977295, -11.82706356048584, -10.860269546508789, -11.796539306640625, -11.723798751831055, -9.0610990524292, -7.152921676635742, -7.5527496337890625, -8.147629737854004, -10.902644157409668, -11.68581771850586, -12.367310523986816, -11.702581405639648, -8.712815284729004, -8.845623016357422, -12.976232528686523, -11.616682052612305, -11.997901916503906, -14.049080848693848, -14.67786693572998, -12.36347770690918, -8.937615394592285, -10.064549446105957, -11.763945579528809, -11.500814437866211, -9.528406143188477, -9.353967666625977, -10.429952621459961, -13.006525039672852, -11.476167678833008, -10.734222412109375, -10.009344100952148, -7.888761043548584, -7.824706554412842, -9.110729217529297, -9.48924446105957, -12.461246490478516, -14.69758415222168, -14.920794486999512, -11.774190902709961, -7.389455318450928, -8.04619312286377, -8.790218353271484, -8.882771492004395, -8.627889633178711, -8.659079551696777, -9.262826919555664, -9.31825065612793, -7.868199825286865, -7.072927951812744, -7.098119735717773, -6.9751362800598145, -6.992056846618652, -7.0197834968566895, -7.87604284286499, -9.353536605834961, -12.483333587646484, -13.85105037689209, -11.593138694763184, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -8.23788070678711, -9.464098930358887, -12.521646499633789, -13.85105037689209, -11.593138694763184, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -8.23788070678711, -9.464098930358887, -12.521646499633789, -13.85105037689209, -11.593138694763184, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -6.950723648071289, -8.23788070678711, -9.464098930358887, -12.521646499633789, -15.71525764465332, -14.730467796325684, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -9.778361320495605, -11.46629524230957, -11.749032974243164, -13.475395202636719, -19.507959365844727, -18.695724487304688, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -14.690576553344727, -16.67496681213379, -16.887367248535156, -17.225175857543945, -21.28459358215332, -20.14000129699707, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -17.035776138305664, -19.29115104675293, -20.925703048706055, -18.44648551940918, 0.8337026238441467, 1.2338454723358154, 2.413278341293335, 1.329516887664795, 0.9486138224601746, 1.5805916786193848, 2.4565224647521973, 1.6860995292663574, 1.1180614233016968, 0.04677989333868027, -0.0023698806762695312, 1.166621208190918, 2.614753484725952, 3.523237943649292, 1.843414306640625, -0.33029288053512573, 2.745556592941284, 2.7214157581329346, 0.9780723452568054, 0.8069546818733215, 1.8652091026306152, 3.3467586040496826, 3.0480329990386963, 1.370211124420166, 1.8986256122589111, 2.0370962619781494, 1.4704509973526, 1.8419184684753418, 1.616986870765686, 0.9066638350486755, -0.5224427580833435, 0.25903111696243286, 1.6255170106887817, -0.025963440537452698, -2.4456491470336914, 1.0124027729034424, 1.5278528928756714, 0.6540680527687073, 0.1545434445142746, 1.2552409172058105, 1.8859719038009644, 0.1274205893278122, 0.1974853128194809, 0.6052019000053406, 0.22228316962718964, 0.25450223684310913, -1.0299646854400635, 0.2599814534187317, -0.12903572618961334, -0.6325225830078125, 1.0016556978225708, 2.021057605743408, 0.8734199404716492, -0.6591353416442871, 0.5604270696640015, 0.23245681822299957, -0.3103547692298889, -0.39975714683532715, -0.12986703217029572, -0.03130413591861725, -0.5889897346496582, 0.5260443091392517, 0.024411246180534363, 0.9001343846321106, 1.2563060522079468, -0.25542670488357544, 0.5563839673995972, -0.3420761227607727, 0.026314660906791687, 0.8074560165405273, 0.5620974898338318, -0.208473339676857, -0.32341402769088745, 0.9791191220283508, 0.23702453076839447, -0.7330719232559204, -1.0454795360565186, -1.0093121528625488, -0.5469370484352112, -0.029801443219184875, 0.14001868665218353, -0.3101402521133423, 0.1766587346792221, 0.5936474204063416, -0.17568103969097137, 0.04550682008266449, -0.5316960215568542, -0.5648645758628845, -0.7212504148483276, -0.6837256550788879, -0.8349443078041077, -0.8450985550880432, -0.4301187992095947, -0.2554752230644226, -0.7846652865409851, -0.5168230533599854, 0.07520271837711334, 0.050477534532547, 0.06392143666744232, -0.0451057106256485, 0.22254852950572968, 0.33794039487838745, -0.08008669316768646, -0.47114109992980957, -0.7084060311317444, -0.4390462636947632, -0.2649768590927124, -0.4110085964202881, -0.1302819401025772, -0.578077495098114, -1.0294156074523926, -1.0199307203292847, -0.646833598613739, -0.7230923771858215, 0.13825157284736633, 0.44892024993896484, 0.07411056756973267, -0.5176565647125244, 0.11152090132236481, 0.6752901673316956, -0.07493259012699127, -0.6783391237258911, -0.594869077205658, -0.27628999948501587, 0.009231910109519958, -0.2404259741306305, -0.1420188695192337, 0.6396523714065552, 0.7660464644432068, -0.41087621450424194, -0.1385224610567093, 0.19806312024593353, -0.1942680925130844, -0.22711922228336334, 0.2604268193244934, 0.363864541053772, 0.11223624646663666, 0.3701196312904358, 0.9982811808586121, 1.2767082452774048, -0.30729931592941284, -1.299472451210022, -1.2222920656204224, -0.9968953728675842, -1.0207014083862305, -1.0068559646606445, 0.5932222008705139, 0.42982029914855957, -0.22592787444591522, -0.20364059507846832, -0.04940734803676605, -0.15124797821044922, -0.4786375164985657, 0.11024153232574463, 0.3091384172439575, -0.33634400367736816, -0.020488709211349487, 0.14419935643672943, -0.5390841960906982, -0.974717378616333, -1.0070607662200928, -0.9457691311836243, -0.37535083293914795, -0.6431846618652344, -0.9375067353248596, -0.3917323350906372, 0.02457648515701294, -0.09868860244750977, -0.3794035315513611, -0.14323429763317108, 0.008929088711738586, -0.19348861277103424, 0.38930052518844604, 0.2254239171743393, 0.058441951870918274, -0.019342981278896332, -0.2031853348016739, -0.8672820925712585, -0.5690709948539734, -0.27897849678993225, -0.4646655321121216, 0.33196401596069336, 0.014237388968467712, -0.9512370824813843, -0.7026684880256653, 0.01825152337551117, 0.11650137603282928, 0.2416153997182846, -0.35931146144866943, -0.747003436088562, 0.08085280656814575, 1.3103535175323486, 1.6809440851211548, 0.9371523261070251, 1.2684177160263062, 1.5935134887695312, 0.9627798199653625, 1.2946972846984863, 0.827912449836731, 0.10163727402687073, 0.829234778881073, 1.0612609386444092, 0.526534378528595, 0.2426382154226303, 1.1108770370483398, 1.1713626384735107, 1.391599416732788, 0.3028358817100525, -0.19731421768665314, -0.2754613161087036, 1.2776635885238647, 1.6672097444534302, 1.541947603225708, 1.9345800876617432, 1.8561846017837524, 1.8964608907699585, 1.643095850944519, 0.9748615622520447, 0.9989966750144958, 1.469075322151184, 1.605002760887146, 1.3831390142440796, 1.1043602228164673, 1.2840646505355835, 1.2257529497146606, 1.3135361671447754, 0.5961676239967346, -0.1515255719423294, -0.49952179193496704, 0.530490517616272, 0.8217012286186218, 0.8677644729614258, 1.1208232641220093, 0.9135172963142395, 0.8589093089103699, 0.844509482383728, 0.7842215895652771, 0.8498667478561401, 0.8589191436767578, 0.6734921336174011, 0.5796309113502502, 0.5156055092811584, 0.4833332300186157, 0.5673302412033081, 0.6669220924377441, -0.20427019894123077, -0.9325571060180664, -0.6043828725814819, 0.28759562969207764, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.48532187938690186, -0.1513739973306656, -0.9002802968025208, -0.6043828725814819, 0.28759562969207764, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.48532187938690186, -0.1513739973306656, -0.9002802968025208, -0.6043828725814819, 0.28759562969207764, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.4505924582481384, 0.48532187938690186, -0.1513739973306656, -0.9002802968025208, -0.016650214791297913, 0.9632530808448792, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.0688350200653076, 1.1167681217193604, -0.16412098705768585, -1.108083724975586, 0.21000902354717255, 1.418355941772461, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.5043675899505615, 1.1852394342422485, 0.44606560468673706, -1.0759553909301758, -0.5639692544937134, 0.07631568610668182, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.03632648289203644, -0.22308237850666046, -0.3761276602745056, -1.4962830543518066, -2.4426956176757812, -0.4318616986274719, -0.9902350306510925, -0.2636963725090027, -1.1562079191207886, -2.2131903171539307, -2.2879552841186523, -2.3127400875091553, -1.5184264183044434, -1.5018309354782104, -1.3913850784301758, -0.6113887429237366, 0.03960077464580536, 1.4258099794387817, -0.06018878519535065, -0.21939124166965485, 0.06686912477016449, 1.2609792947769165, 1.5655611753463745, -1.2768568992614746, 0.7078568339347839, 0.6367661952972412, 0.8660712242126465, 1.1433193683624268, -1.1536507606506348, -0.732269823551178, 0.17737968266010284, 1.0439529418945312, -0.34195470809936523, 0.21637068688869476, 0.7795315384864807, 1.8922991752624512, 2.8429627418518066, 0.8451814651489258, -0.423126757144928, 0.7209094762802124, 3.2866435050964355, 3.643892765045166, -1.2429022789001465, 2.1774659156799316, 1.5672292709350586, 1.6883364915847778, 1.0898669958114624, -0.2804361581802368, 1.5693835020065308, 2.0011990070343018, 1.9764149188995361, 2.42258882522583, 3.211704730987549, -0.7244535684585571, -2.105255365371704, 2.1415693759918213, 2.7977662086486816, 1.024803876876831, -1.2716456651687622, 0.9836704730987549, 1.3757002353668213, -1.2800348997116089, 1.8697926998138428, 1.0085434913635254, 1.3781089782714844, 0.9633126258850098, -0.37112438678741455, 1.1984663009643555, 2.0543453693389893, 2.201425552368164, 2.11515736579895, 1.6183336973190308, 0.005504831671714783, -0.07284797728061676, 0.8436115980148315, 0.9880503416061401, 1.0461788177490234, 0.23000238835811615, 1.743800163269043, 1.369284749031067, -1.7053236961364746, -0.8835985660552979, -1.3142184019088745, -0.808600127696991, 0.3344295024871826, 0.930668294429779, 0.3564367890357971, 0.13048408925533295, 0.8836851716041565, -0.7720797657966614, -1.6164215803146362, -1.32950758934021, -0.8026773929595947, -1.181009292602539, -0.5968040823936462, -0.7255769968032837, 0.42473822832107544, 1.6767401695251465, 1.0634475946426392, -2.0547492504119873, -1.1447992324829102, -1.444050669670105, -0.33206164836883545, -0.2880184054374695, -0.47802507877349854, -0.6627558469772339, -0.7725434303283691, -0.0246419757604599, -0.6571378111839294, -0.49210286140441895, -0.5600751638412476, -0.028012290596961975, 0.09715317189693451, -0.26345503330230713, -0.1528736799955368, 0.4547744393348694, 1.6931488513946533, 1.00342857837677, -1.0918523073196411, -0.2897135615348816, -0.4390749931335449, 0.2738646864891052, -0.008955076336860657, -0.6472868919372559, -0.33406752347946167, -0.922494113445282, -0.16773532330989838, 0.8139382004737854, -0.2064584642648697, -0.5603023767471313, 0.8585473299026489, 0.45110023021698, 0.4565836191177368, 0.6790653467178345, 0.31872010231018066, 2.084244966506958, 1.861287236213684, -0.8408750295639038, 1.095247745513916, 1.0397318601608276, 1.166414499282837, 1.1392874717712402, 0.4553084969520569, -0.0913010686635971, -1.1411789655685425, -0.49560487270355225, 0.5152072906494141, -0.26574695110321045, -0.7335800528526306, 0.3093166947364807, -0.13138999044895172, 0.205657497048378, 0.6528064012527466, 0.7286665439605713, 1.8911430835723877, 2.335812568664551, -0.9198312759399414, 0.049349263310432434, -0.06277193129062653, -0.42522114515304565, -0.8489968776702881, -1.3500345945358276, -1.8897984027862549, -1.8572719097137451, -1.3156040906906128, -1.203158974647522, -1.712636947631836, -1.0799943208694458, -0.03500126302242279, -0.324651300907135, -0.7351809740066528, -0.9762768745422363, 0.4790685176849365, 1.7032361030578613, 2.211310863494873, -1.7092270851135254, -0.5609058737754822, -1.1228673458099365, -0.4973624348640442, -0.9109222292900085, -1.9830095767974854, -1.7710492610931396, -1.5091841220855713, -1.1274077892303467, -0.8618898391723633, -1.5663437843322754, -1.7274069786071777, -0.6975643634796143, -0.39206844568252563, -0.3465462923049927, -0.8787328600883484, 0.33175748586654663, 1.170198917388916, 1.6591812372207642, -1.2200477123260498, -0.20421911776065826, -1.3396074771881104, -0.306077241897583, -0.7709817886352539, -1.5185836553573608, -0.7610552906990051, -0.5450829863548279, -0.455697238445282, -0.5938485860824585, -1.0835928916931152, -1.5956499576568604, -1.0765626430511475, -1.5456608533859253, -0.8079908490180969, -1.3359721899032593, -0.6928980946540833, 0.9796116352081299, 1.637627363204956, -0.026463642716407776, 1.088730812072754, 0.08368735015392303, 0.6947270631790161, 0.24287806451320648, 0.2220887392759323, 0.22136135399341583, 0.6130363941192627, 0.44561076164245605, 0.20364032685756683, -0.2760452628135681, 0.034741923213005066, -0.2009223848581314, -0.19228239357471466, -0.6145491003990173, -0.5805582404136658, 0.2840511202812195, 1.9804573059082031, 2.150498867034912, 0.2982521653175354, 0.9017888307571411, 0.08044464886188507, 0.2819107174873352, 0.2226378470659256, 0.25057685375213623, 0.14882248640060425, 0.288543164730072, 0.4021645784378052, 0.1833503693342209, -0.07654829323291779, 0.2302447408437729, 0.1989140659570694, 0.10475978255271912, 0.20958270132541656, 0.11474601924419403, 0.7376089096069336, 1.9257616996765137, 1.6885331869125366, 0.593644917011261, 1.0608723163604736, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.7046129107475281, 1.8394804000854492, 1.5757436752319336, 0.593644917011261, 1.0608723163604736, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.7046129107475281, 1.8394804000854492, 1.5757436752319336, 0.593644917011261, 1.0608723163604736, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.0760149210691452, 0.7046129107475281, 1.8394804000854492, 1.5757436752319336, 0.27766716480255127, 1.0271708965301514, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, -0.04233740270137787, 0.35315990447998047, 1.8524255752563477, 1.7570366859436035, 2.350839376449585, 3.2368266582489014, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.420076608657837, 2.657804489135742, 3.281644821166992, 2.1868858337402344, 3.023949384689331, 3.764329195022583, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 2.805973529815674, 3.611694574356079, 4.1863603591918945, 3.209550619125366, -0.07997023314237595, -0.031128058210015297, -0.05631766468286514, -0.30533361434936523, -0.1793803870677948, -0.08767276257276535, 0.002696773037314415, -0.034055717289447784, 0.21101421117782593, 0.006300466135144234, -0.12468751519918442, -0.40260782837867737, 0.019533654674887657, 0.6522064208984375, 0.5395669341087341, 0.3732008934020996, 0.01876099966466427, 0.05277083069086075, 0.09421012550592422, 0.037184588611125946, 0.048915229737758636, -0.3687756657600403, -0.3354473114013672, -0.0358089879155159, -0.04160512238740921, -0.05977261811494827, 0.14215423166751862, 0.4513474702835083, 0.054237477481365204, -0.15135939419269562, -0.27290719747543335, 0.00802222453057766, -0.21266989409923553, -0.409300833940506, -0.294787734746933, -0.38493284583091736, -0.4475294351577759, -0.1616521030664444, 0.05425339192152023, -0.12506212294101715, -0.3879631757736206, -0.3905656933784485, -0.31357571482658386, 0.30150705575942993, -0.5284388661384583, -0.7223031520843506, -0.18577536940574646, -0.30814653635025024, -0.4960959553718567, -0.3511532247066498, 0.07679548114538193, -0.668377161026001, -0.7142806053161621, -0.2447056621313095, -0.16661657392978668, -0.24337826669216156, 0.10754571855068207, 0.03373783081769943, -0.33639925718307495, -0.3991205096244812, -0.42733335494995117, -0.445326030254364, 0.1549152284860611, -0.5841174125671387, -1.0674455165863037, -0.6033579111099243, -0.388134241104126, -0.6917543411254883, -0.7394685745239258, -0.17709599435329437, -0.11704651266336441, -0.1545354574918747, -0.0466996505856514, 0.1695828139781952, -0.06070572882890701, 0.01988050900399685, 0.18972037732601166, -0.08375165611505508, -0.05153627693653107, 0.09471067786216736, 0.1151435449719429, -0.031988829374313354, -0.011967498809099197, -0.09488164633512497, -0.23431828618049622, 0.029156388714909554, -0.08204638957977295, -0.11442465335130692, -0.028418758884072304, -0.0069951340556144714, 0.04014158993959427, 0.202037513256073, 0.1110549122095108, 0.03740602731704712, 0.06044376641511917, 0.35421717166900635, 0.11522790044546127, 0.0313800573348999, 0.12459439039230347, 0.17382997274398804, 0.05266339331865311, 0.0015046261250972748, 0.10066037625074387, 0.09485071152448654, 0.11848681420087814, -0.021667057648301125, -0.048620790243148804, 0.03687847778201103, -0.005775498226284981, 0.13027462363243103, 0.17545254528522491, -0.021523384377360344, 0.03596370667219162, 0.21906353533267975, 0.33089303970336914, 0.1934393048286438, 0.2279876470565796, 0.1798231303691864, 0.04239876568317413, 0.06058861315250397, -0.011447921395301819, 0.13031017780303955, -0.01944964937865734, -0.05652701109647751, 0.06437648832798004, 0.14236736297607422, 0.1562630534172058, 0.1027931198477745, 0.1022433489561081, 0.14052942395210266, 0.2505524158477783, -0.08255242556333542, -0.00427219457924366, 0.19736315310001373, 0.11148259788751602, 0.20824243128299713, 0.22861631214618683, 0.1291559338569641, 0.13732124865055084, 0.07241304218769073, 0.1690237820148468, 0.0976758599281311, -0.0638100802898407, 0.16775093972682953, 0.2739880383014679, 0.13547618687152863, 0.15155963599681854, 0.03933878242969513, -0.05881938338279724, 0.08518911898136139, -0.19499099254608154, -0.06530597805976868, 0.14472155272960663, 0.13287211954593658, 0.14441774785518646, 0.0973312184214592, 0.05245079845190048, 0.07215423136949539, 0.17242158949375153, 0.216702401638031, 0.28438717126846313, 0.1423865705728531, 0.22732903063297272, 0.07743252068758011, 0.09292026609182358, 0.16789092123508453, 0.11655810475349426, 0.07906325906515121, 0.2018095999956131, -0.06851020455360413, -0.12566334009170532, 0.13164770603179932, 0.07271645218133926, 0.06811308115720749, -0.034176744520664215, -0.1350199282169342, -0.04773014038801193, 0.13013127446174622, 0.1144322082400322, 0.23087739944458008, 0.11870753020048141, 0.14736856520175934, 0.0338892862200737, 0.038360416889190674, 0.05217132717370987, 0.0221752617508173, 0.011649918742477894, -0.022514207288622856, -0.18134109675884247, -0.22268179059028625, 0.05644293874502182, 0.12056614458560944, 0.09059217572212219, 0.016777027398347855, 0.23048736155033112, 0.3238561451435089, 0.1294688731431961, 0.07189565151929855, 0.20872384309768677, 0.32926851511001587, 0.3657982349395752, 0.3181011974811554, 0.18262922763824463, -0.00572693906724453, -0.1480734795331955, -0.08815950900316238, -0.043961383402347565, -0.35547977685928345, -0.19157303869724274, 0.06409166753292084, -0.010543810203671455, 0.08672695606946945, 0.14665573835372925, 0.33542367815971375, 0.3548126220703125, 0.23896223306655884, 0.2115958333015442, 0.23845234513282776, 0.2806210517883301, 0.3284382224082947, 0.23785555362701416, 0.13467317819595337, 0.13151146471500397, 0.10366631299257278, -0.03256718069314957, -0.0722108781337738, -0.40054357051849365, -0.2666895091533661, -0.024085795506834984, -0.10832923650741577, 0.009671054780483246, 0.057172439992427826, 0.07095327228307724, 0.08211373537778854, 0.07894600182771683, 0.11027684062719345, 0.10257848352193832, 0.10909950733184814, 0.029081955552101135, -0.016374314203858376, 0.003836376592516899, 0.01704719476401806, 0.015426883473992348, 0.017161035910248756, -0.05732329189777374, -0.28480321168899536, -0.23038507997989655, -0.04078707844018936, -0.11108122766017914, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.04921327531337738, -0.25757014751434326, -0.20167000591754913, -0.04078707844018936, -0.11108122766017914, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.04921327531337738, -0.25757014751434326, -0.20167000591754913, -0.04078707844018936, -0.11108122766017914, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.005421383306384087, -0.04921327531337738, -0.25757014751434326, -0.20167000591754913, -0.002510564401745796, -0.10533066838979721, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, 0.03237573057413101, -0.01596280373632908, -0.2017979919910431, -0.1415461152791977, 0.021968567743897438, -0.11498326808214188, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.08911285549402237, 0.03313060849905014, -0.17772682011127472, -0.24874566495418549, -0.07340075075626373, -0.14531847834587097, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, 0.025773679837584496, -0.00716351717710495, -0.20767243206501007, -0.25384971499443054, 0.5178345441818237, 0.45461949706077576, 0.5060141682624817, 0.5949255228042603, 0.5050522685050964, 0.4793742001056671, 0.49229374527931213, 0.31666845083236694, 0.28630930185317993, 0.8451200127601624, 0.5987108945846558, 0.5437465906143188, 0.5109259486198425, 0.47917845845222473, 0.5113478302955627, 0.39530453085899353, 0.39228469133377075, 0.18584398925304413, -0.221371591091156, 0.015221569687128067, 0.27979376912117004, 0.3588698208332062, 0.6676497459411621, 0.23312249779701233, 0.25681281089782715, 0.2780686914920807, 0.2942357063293457, 0.27145764231681824, 0.30849847197532654, 0.2980164587497711, 0.3407498896121979, 0.2821735739707947, 0.5145061016082764, 0.346150279045105, -0.22545289993286133, -0.003971170634031296, -0.2169124186038971, -0.39676639437675476, 0.08454100787639618, 0.1407792866230011, -0.04619470611214638, -0.5138384699821472, -0.24607011675834656, -0.10956327617168427, -0.08262571692466736, -0.03355494514107704, -0.11422160267829895, -0.21074849367141724, -0.5114296078681946, -0.49891045689582825, 0.04802735522389412, 0.3136416971683502, -0.2853220999240875, -0.48336896300315857, -0.14968468248844147, -0.13308455049991608, -0.36552074551582336, 0.23490729928016663, -0.005977574735879898, -0.08957788348197937, -0.6113943457603455, -0.4367228150367737, -0.0746234804391861, 0.07144644856452942, -0.1010729968547821, -0.03956681862473488, -0.06083616986870766, -0.5991225838661194, -0.8404955863952637, -0.279721200466156, -0.24317502975463867, -0.619134247303009, -0.8045257329940796, -0.21668878197669983, -0.2842419445514679, -0.3121901750564575, 0.2226087749004364, 0.12877240777015686, 0.10063733160495758, -0.151847705245018, -0.19285094738006592, -0.2132459133863449, -0.11298926174640656, -0.24376541376113892, -0.32608720660209656, 0.021780218929052353, 0.035133618861436844, 0.022851306945085526, 0.24642911553382874, 0.12375876307487488, 0.08982276916503906, -0.1319265216588974, -0.2159930020570755, -0.29922714829444885, -0.23372597992420197, -0.055985454469919205, 0.10357531905174255, 0.08272680640220642, -0.01403430849313736, 0.026462864130735397, -0.033550117164850235, -0.12239132821559906, -0.05209088698029518, -0.08943834900856018, 0.08476302027702332, 0.1708696186542511, 0.16780351102352142, 0.18417176604270935, 0.07801377773284912, 0.0645408034324646, -0.029474010691046715, -0.047895852476358414, -0.12947288155555725, -0.15425559878349304, 0.022812310606241226, 0.06709104776382446, 0.12690745294094086, 0.13230681419372559, 0.045064445585012436, 0.013690046966075897, 0.017034862190485, 0.07149578630924225, -0.05535414442420006, 0.007687311619520187, 0.11695817112922668, 0.09844423830509186, -0.012805365025997162, 0.02317717671394348, 0.005439300090074539, -0.08304193615913391, -0.05250069126486778, 0.16483815014362335, 0.15251949429512024, 0.2730135917663574, -0.015037473291158676, 0.03944705054163933, 0.1153227686882019, 0.08070932328701019, 0.03174790367484093, 0.11431002616882324, 0.13857927918434143, -0.09103260934352875, -0.04966818913817406, 0.059672024101018906, 0.038377705961465836, -0.06754620373249054, 0.05767856910824776, -0.04401206225156784, -0.08760328590869904, 0.014304384589195251, -0.04741405323147774, -0.10916972160339355, 0.3023332357406616, -0.0265987329185009, -0.08338075876235962, 0.07699234783649445, 0.37920960783958435, 0.30471405386924744, 0.03881135210394859, 0.05894708260893822, 0.0016682185232639313, 0.11628520488739014, 0.25682997703552246, 0.07254891097545624, -0.0304124653339386, -0.03502724692225456, -0.21211977303028107, -0.14549514651298523, -0.005068846046924591, -0.16333800554275513, -0.27128171920776367, 0.16789916157722473, -0.06570927798748016, -0.04708515480160713, 0.11342985928058624, 0.260354608297348, 0.1252526491880417, -0.020108450204133987, 0.06981460750102997, 0.10741198062896729, 0.14069810509681702, 0.1314445436000824, 0.06282496452331543, -0.09210144728422165, -0.19907128810882568, -0.1947304755449295, -0.11187344789505005, -0.09979340434074402, -0.34575411677360535, -0.41392871737480164, -0.07458385825157166, -0.04899649694561958, -0.06328487396240234, -0.05187075212597847, -0.11289975047111511, -0.1633855551481247, -0.23766620457172394, -0.14470790326595306, -0.060557205229997635, 0.039341140538454056, 0.0327913723886013, -0.03419225290417671, -0.12248758971691132, -0.1895858645439148, -0.2420734167098999, -0.13626326620578766, -0.09525039792060852, -0.26508527994155884, -0.322308212518692, -0.07922020554542542, -0.1115635484457016, -0.09078757464885712, -0.18371820449829102, -0.21966329216957092, -0.14120180904865265, -0.12804889678955078, -0.16041074693202972, -0.09750080108642578, -0.11423277854919434, -0.026973236352205276, -0.005595345050096512, -0.0816240906715393, -0.08509646356105804, -0.16437163949012756, -0.15457826852798462, -0.07683807611465454, 0.008654605597257614, -0.012673426419496536, -0.179889976978302, -0.1923055350780487, -0.1924675703048706, -0.22841373085975647, -0.252893328666687, -0.24221189320087433, -0.20578457415103912, -0.23914945125579834, -0.23385141789913177, -0.23497851192951202, -0.19834324717521667, -0.17092102766036987, -0.1727328896522522, -0.1744692325592041, -0.153648242354393, -0.15670983493328094, -0.18098686635494232, -0.11453856527805328, -0.10469266772270203, -0.1881249099969864, -0.1750141978263855, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.15226779878139496, -0.07414405047893524, -0.0709410309791565, -0.1881249099969864, -0.1750141978263855, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.15226779878139496, -0.07414405047893524, -0.0709410309791565, -0.1881249099969864, -0.1750141978263855, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.16457325220108032, -0.15226779878139496, -0.07414405047893524, -0.0709410309791565, -0.1746954619884491, -0.24318364262580872, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2442953884601593, -0.2644081115722656, -0.07613959908485413, -0.11668911576271057, 0.029753249138593674, -0.09607776999473572, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13547305762767792, -0.13659366965293884, 0.15948083996772766, 0.1731272041797638, 0.23190388083457947, -0.025250717997550964, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.05179294943809509, -0.046890988945961, 0.1231936514377594, 0.12186586856842041, -33.38312530517578, -25.497709274291992, -37.26951599121094, -35.974853515625, -23.954530715942383, -23.849843978881836, -28.638368606567383, -25.805387496948242, -22.056413650512695, -34.89299774169922, -41.2281379699707, -41.8032112121582, -51.89385223388672, -52.65882110595703, -31.46744728088379, -34.05561065673828, -37.72828674316406, -39.60111999511719, -32.917701721191406, -24.3487548828125, -22.03365707397461, -50.66944122314453, -51.06672286987305, -30.4702205657959, -24.648046493530273, -25.616315841674805, -26.873401641845703, -22.538249969482422, -46.6431884765625, -55.20766067504883, -45.63835144042969, -51.34894943237305, -66.81831359863281, -41.198211669921875, -29.628984451293945, -30.374258041381836, -37.301021575927734, -32.696441650390625, -21.749971389770508, -30.167724609375, -48.201171875, -32.68974304199219, -35.446014404296875, -30.67864227294922, -30.202390670776367, -21.323089599609375, -22.1713809967041, -41.672271728515625, -38.285858154296875, -37.43818283081055, -38.92914581298828, -49.511390686035156, -35.871734619140625, -29.00189781188965, -27.454530715942383, -28.326440811157227, -24.046497344970703, -18.897668838500977, -28.048219680786133, -35.762638092041016, -27.343046188354492, -34.35430908203125, -32.524227142333984, -35.588233947753906, -26.622055053710938, -23.447986602783203, -31.720964431762695, -34.85585021972656, -40.27544403076172, -29.254104614257812, -28.108285903930664, -27.564294815063477, -31.133901596069336, -25.067358016967773, -26.332674026489258, -23.757165908813477, -16.158788681030273, -12.379560470581055, -11.093310356140137, -8.052979469299316, -6.926366806030273, -10.090397834777832, -12.762553215026855, -14.311753273010254, -14.339205741882324, -12.821547508239746, -17.9281063079834, -20.842348098754883, -17.335735321044922, -12.737259864807129, -11.419583320617676, -14.785889625549316, -15.76508617401123, -20.796079635620117, -21.6825008392334, -12.54382610321045, -10.063876152038574, -12.377226829528809, -10.146145820617676, -10.362896919250488, -11.036444664001465, -7.241637229919434, -5.644286155700684, -8.961684226989746, -12.069336891174316, -13.55713176727295, -15.368551254272461, -20.267135620117188, -18.676607131958008, -12.204329490661621, -14.626749992370605, -18.268068313598633, -24.608583450317383, -25.05144500732422, -14.944150924682617, -13.17203426361084, -15.67646312713623, -11.59237289428711, -12.725455284118652, -14.345321655273438, -11.754361152648926, -8.31562614440918, -8.717799186706543, -13.38623046875, -14.228108406066895, -14.664831161499023, -17.314626693725586, -15.305289268493652, -13.431414604187012, -15.445926666259766, -17.101552963256836, -29.245222091674805, -31.966222763061523, -17.503385543823242, -11.631114959716797, -12.951981544494629, -9.009257316589355, -10.342427253723145, -14.321000099182129, -14.567915916442871, -12.283079147338867, -6.480733394622803, -9.148655891418457, -12.048922538757324, -15.4395112991333, -14.731138229370117, -10.54305362701416, -14.487076759338379, -14.875718116760254, -14.690366744995117, -26.20856475830078, -27.483707427978516, -15.108771324157715, -10.73831844329834, -9.346646308898926, -12.55476188659668, -19.450101852416992, -20.223886489868164, -17.639238357543945, -14.410758018493652, -11.084827423095703, -12.663041114807129, -16.009767532348633, -17.187862396240234, -14.615222930908203, -14.077752113342285, -12.844454765319824, -13.930926322937012, -15.368040084838867, -22.17414665222168, -24.291954040527344, -17.9950008392334, -14.931795120239258, -16.213279724121094, -19.202926635742188, -21.03433609008789, -17.104684829711914, -15.728537559509277, -16.46940040588379, -13.664103507995605, -15.92700481414795, -18.516393661499023, -16.490224838256836, -14.788858413696289, -12.369241714477539, -13.742685317993164, -15.999463081359863, -17.27704429626465, -24.319894790649414, -25.151458740234375, -21.535947799682617, -18.041717529296875, -18.440244674682617, -18.85112190246582, -17.975343704223633, -15.455498695373535, -14.126606941223145, -14.101723670959473, -12.701069831848145, -14.828192710876465, -18.05739974975586, -17.48182487487793, -15.837270736694336, -13.508934020996094, -13.287972450256348, -15.886503219604492, -18.67877960205078, -27.776092529296875, -27.18129539489746, -21.137876510620117, -15.4745454788208, -13.677321434020996, -15.097886085510254, -18.505319595336914, -17.968507766723633, -14.808326721191406, -14.977076530456543, -15.128668785095215, -15.621418952941895, -13.649052619934082, -13.060193061828613, -13.425389289855957, -11.874896049499512, -11.502951622009277, -12.002253532409668, -15.390195846557617, -26.23175621032715, -26.708616256713867, -21.426485061645508, -14.620087623596191, -11.500492095947266, -12.317898750305176, -13.553912162780762, -13.189440727233887, -12.429020881652832, -12.892951011657715, -13.388745307922363, -13.493687629699707, -11.50990104675293, -10.3109769821167, -10.338769912719727, -9.889368057250977, -9.361557006835938, -9.42765998840332, -13.866138458251953, -20.850807189941406, -22.733537673950195, -19.249441146850586, -12.561861038208008, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -12.726858139038086, -19.63713264465332, -21.37508201599121, -19.249441146850586, -12.561861038208008, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -12.726858139038086, -19.63713264465332, -21.37508201599121, -19.249441146850586, -12.561861038208008, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -8.260041236877441, -12.726858139038086, -19.63713264465332, -21.37508201599121, -28.146631240844727, -23.170358657836914, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -18.494518280029297, -23.682668685913086, -26.65166664123535, -25.95743751525879, -39.57511901855469, -34.640804290771484, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -30.579830169677734, -37.36768341064453, -38.063392639160156, -34.94294738769531, -37.72954559326172, -34.95470428466797, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -30.815792083740234, -36.88134002685547, -39.95603942871094, -33.31025314331055]]}
// import VConsole from 'vconsole';
import 'babel-polyfill';
import Paddle from '../../src/paddle/paddle';
import IO from '../../src/feed/imageFeed';
// import Logger from '../../tools/logger';
// window.log = new Logger();
// // 统计参数
// window.badCases = [];
// 后处理测试用例
// let tempPic = [demoPic, demoPic2, demoPic3, demoPic4, demoPic5];
/**
* @file model demo 入口文件
* @author wangqun@baidu.com
*
*/
// 模型输出shape
const outputShapes = {
'608': {
from: [19, 19, 25, 1],
to: [19, 19, 5, 5]
},
'320': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
},
'320fused': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
},
'tinyYolo': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
}
};
// 模型feed数据
const feedShape = {
'608': {
fw: 608,
fh: 608
},
'320': {
fw: 320,
fh: 320
},
'320fused': {
fw: 320,
fh: 320
},
'tinyYolo': {
fw: 320,
fh: 320
}
};
// 模型路径
const modelPath = {
'tinyYolo': 'model/tinyYolo'
};
const modelType = 'tinyYolo';
const path = modelPath[modelType];
// 统计参数
let loaded = false;
let model = {};
window.statistic = [];
const {fw, fh} = feedShape[modelType];
// 第一遍执行比较慢 所以预热一下
async function run(input) {
// const input = document.getElementById('mobilenet');
//log.start('总耗时');
const io = new IO();
// log.start('预处理');
let feed = io.process({
input: input,
params: {
gapFillWith: '#000', // 缩放后用什么填充不足方形部分
targetSize: {
height: fw,
width: fh
},
targetShape: [1, 3, fh, fw], // 目标形状 为了兼容之前的逻辑所以改个名
// shape: [3, 608, 608], // 预设tensor形状
mean: [117.001, 114.697, 97.404], // 预设期望
// std: [0.229, 0.224, 0.225] // 预设方差
}
});
// log.end('预处理');
if (!loaded) {
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: 'model.json', // 主文件
};
loaded = true;
const paddle = new Paddle({
urlConf: MODEL_CONFIG,
options: {
multipart: true,
dataType: 'binary',
options: {
fileCount: 1, // 切成了多少文件
getFileName(i) { // 获取第i个文件的名称
return 'chunk_0.dat';
}
}
}
});
model = await paddle.load();
}
let inst = model.execute({
input: feed
});
// 其实这里应该有个fetch的执行调用或者fetch的输出
let result = await inst.read();
// log.end('运行耗时');
// log.end('后处理-读取数据');
console.dir(['result', result]);
//log.start('后处理-形状调整');
const newData = [];
let newIndex = -1;
const [w, h, c, b] = outputShapes[modelType].from;
// c channel
for (let i = 0; i < c; i++) {
// height channel
for (let j = 0; j < h; j++) {
// width channel
for (let k = 0; k < w; k++) {
// position: (0, 0, 0, 0)
const index = j * (c * h) + k * c + i;
// const index = j * (i * k) + k * i + i;
newData[++newIndex] = result[index];
}
}
}
// log.end('后处理-形状调整');
// log.start('后处理-画框');
testRun(newData, input);
// log.end('后处理-画框');
// log.end('后处理');
// log.end('总耗时');
}
var image = '';
function selectImage(file) {
if (!file.files || !file.files[0]) {
return;
}
let reader = new FileReader();
reader.onload = function (evt) {
let img = document.getElementById('image');
img.src = evt.target.result;
img.onload = function() {
//log.during('每次执行的时间间隔');
run(img);
};
image = evt.target.result;
}
reader.readAsDataURL(file.files[0]);
}
// selectImage
document.getElementById("uploadImg").onchange = function () {
selectImage(this);
};
/* 后处理图片 by zhangmiao06 */
let preTestRun = (index) => {
let img = document.getElementById('image');
img.src = tempPic[index];
img.onload = function() {
testRun(testOutput.data[index], img);
};
};
let testRun = (data, img) => {
// console.log('ori', data);
const {from, to} = outputShapes[modelType];
// let shape = [1, 25, 19, 19];
let shape = [].concat(from).reverse();
// 1.从一维数组到1*25*19*19
let formatData = reshapeMany({
data: data,
reshapeShape: shape
});
// console.log('一维到多维', formatData);
// 2.从1*25*19*19 到 19*19*25*1
let formatData2 = transpose({
data: formatData,
shape: shape,
transposeShape: [2, 3, 1, 0]
});
// console.log('transpose', formatData2);
// 3.从19*19*25*1到19*19*5*5
let formatData3 = reshape({
data: formatData2,
shape: from,
reshapeShape: to
});
// console.log('reshape', formatData3);
// 4.运算
let finalData = handleFinal(formatData3, shape, img);
// console.log('final', finalData);
// 5.处理画布
// handleCanvas(finalData, img);
handleDiv(finalData, img);
};
// sigmoid
let sigmoid = (x) => {
if (x < -100) {
return 0.0;
}
return 1 / (1 + Math.exp(-x));
}
// transpose
let transpose = (data) => {
let shape = data.shape;
let transposeShape = data.transposeShape;
let formatData = data.data;
let formatData2 = [];
for(let n = 0; n < shape[transposeShape[0]]; n++) {
let nData = [];
for(let c = 0; c < shape[transposeShape[1]]; c++) {
let cData = [];
for(let row = 0; row < shape[transposeShape[2]]; row++) {
let rowData = [];
for(let col = 0; col < shape[transposeShape[3]]; col++) {
let tempArr = [n, c, row, col];
let newN = n;
let newC = c;
let newW = row;
let newH = col;
transposeShape.forEach((item, index)=> {
switch(item) {
case 0:
newN = tempArr[index];
break;
case 1:
newC = tempArr[index];
break;
case 2:
newW = tempArr[index];
break;
case 3:
newH = tempArr[index];
}
});
rowData.push(formatData[newN][newC][newW][newH]);
}
cData.push(rowData);
}
nData.push(cData);
}
formatData2.push(nData);
}
return formatData2;
};
// reshape
let reshape = (data) =>{
let formatData2 = data.data;
let shape = data.shape;
let reshapeShape = data.reshapeShape;
// 1.变成一维
let tempData = reshapeOne({
data: formatData2,
shape: shape
});
// 2.变成多维
let formatData3 = reshapeMany({
data: tempData,
reshapeShape: reshapeShape
});
return formatData3;
};
// 变成一维
let reshapeOne = (data) => {
let formatData2 = data.data;
let shape = data.shape;
let tempData = [];
for(let n = 0; n < shape[0]; n++) {
for(let c = 0; c < shape[1]; c++) {
for(let row = 0; row < shape[2]; row++) {
for(let col = 0; col < shape[3]; col++) {
tempData.push(formatData2[n][c][row][col]);
}
}
}
}
return tempData;
};
// 变成多维
let reshapeMany = (data) => {
let tempData = data.data;
let reshapeShape = data.reshapeShape;
let formatData3 = [];
for(let n = 0; n < reshapeShape[0]; n++) {
let nData = [];
for(let c = 0; c < reshapeShape[1]; c++) {
let cData = [];
for(let row = 0; row < reshapeShape[2]; row++) {
let rowData = [];
for(let col = 0; col < reshapeShape[3]; col++) {
let tempN = n * reshapeShape[1] * reshapeShape[2] * reshapeShape[3];
let tempC = c * reshapeShape[2] * reshapeShape[3];
let tempRow = row * reshapeShape[3];
rowData.push(tempData[tempN + tempC + tempRow + col]);
}
cData.push(rowData);
}
nData.push(cData);
}
formatData3.push(nData);
}
return formatData3;
};
let calSize = (img) => {
let w1 = img.width;
let h1 = img.height;
let wh1 = Math.max(w1, h1);
// let factor = 608.0 / wh1;
let factor = fw / wh1;
let width = Math.round(w1 * factor);
let height = Math.round(h1 * factor);
return [w1, h1, width, height];
};
// 处理运算
let handleFinal = (formatData3, shape, img) => {
let finalData = [];
let c = shape[2];
let [w1, h1, width, height] = calSize(img);
let factorX = Math.max(width, height) / width;
let factorY = Math.max(width, height) / height;
let maxProb = 0.0;
let anchors = [[1.603231, 2.094468], [6.041143, 7.080126], [2.882459, 3.518061], [4.266906, 5.178857], [9.041765, 10.66308]];
for(let i = 0; i < shape[2]; i++) {
for(let j = 0; j < shape[3]; j++) {
for(let k = 0; k < anchors.length; k++) {
let [a1, a2, a3, a4, prob] = formatData3[i][j][k];
prob = sigmoid(prob);
if (prob > maxProb && prob >= 0.5) {
let ctx = (j + sigmoid(a1)) / c * factorX;
let cty = (i + sigmoid(a2)) / c * factorY;
let col = Math.exp(a3) * anchors[k][0] / c * factorX;
let row = Math.exp(a4) * anchors[k][1] / c * factorY;
let x = (ctx - (col / 2));
let y = (cty - (row / 2));
finalData.push([x * w1, y * h1, col * w1, row * h1, prob]);
}
}
}
}
return finalData;
};
// 处理画布
let handleCanvas = (finalData, img) => {
let myCanvas = document.getElementById('myCanvas');
let [w1, h1, width, height] = calSize(img);
myCanvas.width = w1;
myCanvas.height = h1;
let ctx = myCanvas.getContext("2d");
ctx.drawImage(img, 0, 0, w1, h1);
finalData.forEach((demoArr,index) => {
let [demoLeft, demoTop, demoWidth, demoHeight, prob] = demoArr;
ctx.beginPath();
ctx.strokeStyle="red";
ctx.moveTo(demoLeft, demoTop);
ctx.lineTo(demoLeft + demoWidth, demoTop);
ctx.lineTo(demoLeft + demoWidth, demoTop + demoHeight);
ctx.lineTo(demoLeft, demoTop + demoHeight);
ctx.closePath();
ctx.stroke();
});
};
let handleDiv = (finalData, img) => {
if (finalData.length < 1) {
return false;
}
let myCanvas = document.getElementById('myDiv');
let maxIndex = 0;
if (finalData.length > 1) {
for(let i = 1; i < finalData.length; i++) {
if (finalData[i].prob > finalData[maxIndex].prob) {
maxIndex = i;
}
}
}
let [demoLeft, demoTop, demoWidth, demoHeight, prob] = finalData[maxIndex];
myCanvas.style.width = demoWidth;
myCanvas.style.height = demoHeight;
myCanvas.style.left = demoLeft;
myCanvas.style.top = demoTop;
};
// preTestRun(0);
// run(document.getElementById('pic'));
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>paddle web demo</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<style>
.image-wrap {
position: relative;
}
#myDiv {
position: absolute;
border: 1px solid red;
box-sizing: border-box;
}
</style>
</head>
<body>
<div class="image-wrap">
<img id="mobilenet" />
</div>
<p>原图片</p>
<div class="image-wrap">
<img id="image" src=""/>
<div id="myDiv"></div>
</div>
<p>画布</p>
<canvas id="myCanvas"></canvas>
<br/>
<input type="file" id="uploadImg"/>
<div id="txt"></div>
</body>
<script src="index.es6"></script>
</html>
import 'babel-polyfill';
import Runner from '../src/executor/runner';
import Camera from '../src/executor/camera';
// 调试工具
// import vConsole from 'vconsole';
// const theConsole = new vConsole();
let startBtn = document.getElementById('start');
let stopBtn = document.getElementById('stop')
const runner = new Runner({
// 用哪个模型
modelName: 'separate' // '608' | '320' | '320fused' | 'separate'
});
startBtn.disabled = true;
runner.preheat()
.then(() =>{
startBtn.disabled = false
});
const domElement = document.getElementById('video');
const myCanvas = document.getElementById('myDiv');
const videoSelect = document.getElementById('videoSelect');
let camera = new Camera({
// 用来显示摄像头图像的dom
videoDom: domElement
});
camera.getDevices().then(devices => {
if (devices.length) {
camera.run(devices[0].deviceId);
devices.forEach((element, index) => {
let option = document.createElement('option');
option.value = element.deviceId;
option.text = (index + 1);
videoSelect.appendChild(option);
});
videoSelect.onchange = () => {
camera.run(videoSelect.value);
};
}
else {
camera.run();
}
});
const handleDiv = function (data) {
myCanvas.style.width = (data ? data[0] : 0) + 'px';
myCanvas.style.height = (data ? data[0] : 0) + 'px';
myCanvas.style.left = (data ? data[2] : 0) + 'px';
myCanvas.style.top = (data ? data[3] : 0) + 'px';
}
startBtn.addEventListener('click', function () {
startBtn.disabled = true;
runner.startStream(() => camera.curVideo, handleDiv);
});
stopBtn.addEventListener('click', function () {
startBtn.disabled = false;
runner.stopStream();
});
\ No newline at end of file
<!DOCYTPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>识别摄像头里的脸</title>
<style>
body {
margin: 0;
padding: 0;
}
#myDiv {
position: fixed;
border: 1px solid red;
box-sizing: border-box;
}
#video {
background: red;
}
</style>
</head>
<body>
<video id="video">
</video>
<p>
<button id="start">开始识别</button>
<button id="stop">结束</button>
</p>
<select id="videoSelect"></select>
<p id="tips">tips</p>
<div id="myDiv"></div>
<script src="./videoDemo.es6"></script>
</body>
</html>
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
/* eslint-disable */
import 'babel-polyfill';
import Paddle from '../../src/paddle/paddle';
import IO from '../../src/feed/imageFeed';
// import Logger from '../../tools/logger';
// window.log = new Logger();
// // 统计参数
// window.badCases = [];
// 后处理测试用例
// let tempPic = [demoPic, demoPic2, demoPic3, demoPic4, demoPic5];
/**
* @file model demo 入口文件
* @author wangqun@baidu.com
*
*/
// 模型输出shape
const outputShapes = {
'608': {
from: [19, 19, 25, 1],
to: [19, 19, 5, 5]
},
'320': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
},
'320fused': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
},
'separate': {
from: [10, 10, 25, 1],
to: [10, 10, 5, 5]
}
};
// 模型feed数据
const feedShape = {
'608': {
fw: 608,
fh: 608
},
'320': {
fw: 320,
fh: 320
},
'320fused': {
fw: 320,
fh: 320
},
'separate': {
fw: 320,
fh: 320
}
};
// 模型路径
const modelPath = {
'separate': 'model/tinyYolo'
};
const modelType = 'separate';
const path = modelPath[modelType];
// 统计参数
let loaded = false;
let model = {};
window.statistic = [];
const {fw, fh} = feedShape[modelType];
// 第一遍执行比较慢 所以预热一下
async function run(input) {
// const input = document.getElementById('mobilenet');
//log.start('总耗时');
const io = new IO();
// log.start('预处理');
let feed = io.process({
input: input,
params: {
gapFillWith: '#000', // 缩放后用什么填充不足方形部分
targetSize: {
height: fw,
width: fh
},
targetShape: [1, 3, fh, fw], // 目标形状 为了兼容之前的逻辑所以改个名
// shape: [3, 608, 608], // 预设tensor形状
mean: [117.001, 114.697, 97.404], // 预设期望
// std: [0.229, 0.224, 0.225] // 预设方差
}
});
// log.end('预处理');
if (!loaded) {
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: 'model.json', // 主文件
};
loaded = true;
const paddle = new Paddle({
urlConf: MODEL_CONFIG,
options: {
multipart: true,
dataType: 'binary',
options: {
fileCount: 1, // 切成了多少文件
getFileName(i) { // 获取第i个文件的名称
return 'chunk_0.dat';
}
},
feed
}
});
model = await paddle.load();
}
let inst = model.execute({
input: feed
});
// 其实这里应该有个fetch的执行调用或者fetch的输出
let result = await inst.read();
// log.end('运行耗时');
// log.end('后处理-读取数据');
console.dir(['result', result]);
//log.start('后处理-形状调整');
const newData = [];
let newIndex = -1;
const [w, h, c, b] = outputShapes[modelType].from;
// c channel
for (let i = 0; i < c; i++) {
// height channel
for (let j = 0; j < h; j++) {
// width channel
for (let k = 0; k < w; k++) {
// position: (0, 0, 0, 0)
const index = j * (c * h) + k * c + i;
// const index = j * (i * k) + k * i + i;
newData[++newIndex] = result[index];
}
}
}
// log.end('后处理-形状调整');
// log.start('后处理-画框');
testRun(newData, input);
// log.end('后处理-画框');
// log.end('后处理');
// log.end('总耗时');
}
var image = '';
function selectImage(file) {
if (!file.files || !file.files[0]) {
return;
}
let reader = new FileReader();
reader.onload = function (evt) {
let img = document.getElementById('image');
img.src = evt.target.result;
img.onload = function() {
//log.during('每次执行的时间间隔');
run(img);
};
image = evt.target.result;
}
reader.readAsDataURL(file.files[0]);
}
// selectImage
document.getElementById("uploadImg").onchange = function () {
selectImage(this);
};
/* 后处理图片 by zhangmiao06 */
let preTestRun = (index) => {
let img = document.getElementById('image');
img.src = tempPic[index];
img.onload = function() {
testRun(testOutput.data[index], img);
};
};
let testRun = (data, img) => {
// console.log('ori', data);
const {from, to} = outputShapes[modelType];
// let shape = [1, 25, 19, 19];
let shape = [].concat(from).reverse();
// 1.从一维数组到1*25*19*19
let formatData = reshapeMany({
data: data,
reshapeShape: shape
});
// console.log('一维到多维', formatData);
// 2.从1*25*19*19 到 19*19*25*1
let formatData2 = transpose({
data: formatData,
shape: shape,
transposeShape: [2, 3, 1, 0]
});
// console.log('transpose', formatData2);
// 3.从19*19*25*1到19*19*5*5
let formatData3 = reshape({
data: formatData2,
shape: from,
reshapeShape: to
});
// console.log('reshape', formatData3);
// 4.运算
let finalData = handleFinal(formatData3, shape, img);
// console.log('final', finalData);
// 5.处理画布
// handleCanvas(finalData, img);
handleDiv(finalData, img);
};
// sigmoid
let sigmoid = (x) => {
if (x < -100) {
return 0.0;
}
return 1 / (1 + Math.exp(-x));
}
// transpose
let transpose = (data) => {
let shape = data.shape;
let transposeShape = data.transposeShape;
let formatData = data.data;
let formatData2 = [];
for(let n = 0; n < shape[transposeShape[0]]; n++) {
let nData = [];
for(let c = 0; c < shape[transposeShape[1]]; c++) {
let cData = [];
for(let row = 0; row < shape[transposeShape[2]]; row++) {
let rowData = [];
for(let col = 0; col < shape[transposeShape[3]]; col++) {
let tempArr = [n, c, row, col];
let newN = n;
let newC = c;
let newW = row;
let newH = col;
transposeShape.forEach((item, index)=> {
switch(item) {
case 0:
newN = tempArr[index];
break;
case 1:
newC = tempArr[index];
break;
case 2:
newW = tempArr[index];
break;
case 3:
newH = tempArr[index];
}
});
rowData.push(formatData[newN][newC][newW][newH]);
}
cData.push(rowData);
}
nData.push(cData);
}
formatData2.push(nData);
}
return formatData2;
};
// reshape
let reshape = (data) =>{
let formatData2 = data.data;
let shape = data.shape;
let reshapeShape = data.reshapeShape;
// 1.变成一维
let tempData = reshapeOne({
data: formatData2,
shape: shape
});
// 2.变成多维
let formatData3 = reshapeMany({
data: tempData,
reshapeShape: reshapeShape
});
return formatData3;
};
// 变成一维
let reshapeOne = (data) => {
let formatData2 = data.data;
let shape = data.shape;
let tempData = [];
for(let n = 0; n < shape[0]; n++) {
for(let c = 0; c < shape[1]; c++) {
for(let row = 0; row < shape[2]; row++) {
for(let col = 0; col < shape[3]; col++) {
tempData.push(formatData2[n][c][row][col]);
}
}
}
}
return tempData;
};
// 变成多维
let reshapeMany = (data) => {
let tempData = data.data;
let reshapeShape = data.reshapeShape;
let formatData3 = [];
for(let n = 0; n < reshapeShape[0]; n++) {
let nData = [];
for(let c = 0; c < reshapeShape[1]; c++) {
let cData = [];
for(let row = 0; row < reshapeShape[2]; row++) {
let rowData = [];
for(let col = 0; col < reshapeShape[3]; col++) {
let tempN = n * reshapeShape[1] * reshapeShape[2] * reshapeShape[3];
let tempC = c * reshapeShape[2] * reshapeShape[3];
let tempRow = row * reshapeShape[3];
rowData.push(tempData[tempN + tempC + tempRow + col]);
}
cData.push(rowData);
}
nData.push(cData);
}
formatData3.push(nData);
}
return formatData3;
};
let calSize = (img) => {
let w1 = img.width;
let h1 = img.height;
let wh1 = Math.max(w1, h1);
// let factor = 608.0 / wh1;
let factor = fw / wh1;
let width = Math.round(w1 * factor);
let height = Math.round(h1 * factor);
return [w1, h1, width, height];
};
// 处理运算
let handleFinal = (formatData3, shape, img) => {
let finalData = [];
let c = shape[2];
let [w1, h1, width, height] = calSize(img);
let factorX = Math.max(width, height) / width;
let factorY = Math.max(width, height) / height;
let maxProb = 0.0;
let anchors = [[1.603231, 2.094468], [6.041143, 7.080126], [2.882459, 3.518061], [4.266906, 5.178857], [9.041765, 10.66308]];
for(let i = 0; i < shape[2]; i++) {
for(let j = 0; j < shape[3]; j++) {
for(let k = 0; k < anchors.length; k++) {
let [a1, a2, a3, a4, prob] = formatData3[i][j][k];
prob = sigmoid(prob);
if (prob > maxProb && prob >= 0.5) {
let ctx = (j + sigmoid(a1)) / c * factorX;
let cty = (i + sigmoid(a2)) / c * factorY;
let col = Math.exp(a3) * anchors[k][0] / c * factorX;
let row = Math.exp(a4) * anchors[k][1] / c * factorY;
let x = (ctx - (col / 2));
let y = (cty - (row / 2));
finalData.push([x * w1, y * h1, col * w1, row * h1, prob]);
}
}
}
}
return finalData;
};
// 处理画布
let handleCanvas = (finalData, img) => {
let myCanvas = document.getElementById('myCanvas');
let [w1, h1, width, height] = calSize(img);
myCanvas.width = w1;
myCanvas.height = h1;
let ctx = myCanvas.getContext("2d");
ctx.drawImage(img, 0, 0, w1, h1);
finalData.forEach((demoArr,index) => {
let [demoLeft, demoTop, demoWidth, demoHeight, prob] = demoArr;
ctx.beginPath();
ctx.strokeStyle="red";
ctx.moveTo(demoLeft, demoTop);
ctx.lineTo(demoLeft + demoWidth, demoTop);
ctx.lineTo(demoLeft + demoWidth, demoTop + demoHeight);
ctx.lineTo(demoLeft, demoTop + demoHeight);
ctx.closePath();
ctx.stroke();
});
};
let handleDiv = (finalData, img) => {
if (finalData.length < 1) {
return false;
}
let myCanvas = document.getElementById('myDiv');
let maxIndex = 0;
if (finalData.length > 1) {
for(let i = 1; i < finalData.length; i++) {
if (finalData[i].prob > finalData[maxIndex].prob) {
maxIndex = i;
}
}
}
let [demoLeft, demoTop, demoWidth, demoHeight, prob] = finalData[maxIndex];
myCanvas.style.width = demoWidth;
myCanvas.style.height = demoHeight;
myCanvas.style.left = demoLeft;
myCanvas.style.top = demoTop;
};
// preTestRun(0);
// run(document.getElementById('pic'));
/* eslint-enable */
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>paddle web demo</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<style>
.image-wrap {
position: relative;
}
#myDiv {
position: absolute;
border: 1px solid #f71111;
box-sizing: border-box;
}
</style>
</head>
<body>
<div class="image-wrap">
<img id="mobilenet">
</div>
<p>原图片</p>
<div class="image-wrap">
<img id="image" src="pic.png">
<div id="myDiv"></div>
</div>
<p>画布</p>
<canvas id="myCanvas"></canvas>
<input type="file" id="uploadImg">
<div id="txt"></div>
<script src="index.es6"></script>
</body>
</html>
......@@ -4,14 +4,21 @@
"description": "paddle",
"main": "index.js",
"scripts": {
"server": "parcel ./src/index.html",
"testDemo": "parcel ./demo/index.html",
"testSDemo": "parcel ./demo/index.html --port 8125 --https",
"testVideoDemo": "parcel ./demo/videoDemo.html --port 8123 --https",
"mnistdemo": "parcel ./examples/mnist/index.html",
"mobilenet": "parcel ./examples/mobileNet/index.html",
"tinyYolo": "parcel ./examples/tinyYolo/index.html",
"huangfan": "parcel ./examples/huangfan/index.html",
"yolo": "parcel ./examples/yolo/index.html",
"videoDemo": "parcel ./examples/videoDemo.html --port 8123 --https",
"unitTest": "parcel ./test/unitTest.html",
"test": "echo \"Error: no test specified\" && exit 1"
},
"devDependencies": {
"@babel/core": "^7.7.2",
"@babel/preset-env": "^7.7.1",
"axios": "^0.17.1",
"babel-core": "^6.26.3",
"babel-loader": "^8.0.6",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-decorators-legacy": "^1.3.5",
"babel-plugin-transform-runtime": "^6.23.0",
......@@ -20,7 +27,8 @@
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"parcel-bundler": "^1.10.3"
"parcel-bundler": "^1.10.3",
"webpack-cli": "^3.3.6"
},
"keywords": [],
"author": "",
......
......@@ -26,7 +26,7 @@ export default class Camera {
}
// 访问用户媒体设备的兼容方法
run(deviceId) {
run(deviceId, callback) {
if (window.stream) {
window.stream.getTracks().forEach(function (track) {
track.stop();
......@@ -36,7 +36,9 @@ export default class Camera {
let constraints = {
video: {}
};
const success = this.success.bind(this);
const success = stream => {
this.success(stream, callback);
};
const error = this.error.bind(this);
if (this.deviceInfos.length) {
constraints.video.deviceId= {exact: deviceId || this.deviceInfos[0]};
......@@ -63,7 +65,7 @@ export default class Camera {
}
}
success(stream) {
success(stream, callback) {
const domElement = this.video;
// make stream available to console
window.stream = stream;
......@@ -88,6 +90,7 @@ export default class Camera {
domElement.height = $(domElement).height();
}
domElement.play();
callback && callback();
}, false);
}
......
......@@ -82,9 +82,10 @@ export default class GraphExecutor {
// console.log(inputs, outputs);
if (this.type !== 'feed') {
// let time = +Date.now();
log.start(this.opData.iLayer + '-' + this.type);
// log.start(this.opData.iLayer + '-' + this.type);
console.log(this.type, this.opData);
runtime.run(this.type, this.opData, isRendered);
log.end(this.opData.iLayer + '-' + this.type);
// log.end(this.opData.iLayer + '-' + this.type);
// if (runtime.gpu.frameBufferIsComplete().isComplete) {
// var result = runtime.read();
// let res = Array.prototype.slice.call(result);
......
......@@ -137,7 +137,7 @@ export default class PostProcess {
this.lastRect = [0, 0, 0, 0]
}
run(data, img, callback) {
run(data, img, callback, canavs) {
let {from, to} = this.modelConfig.outputShapes;
let shape = [].concat(from).reverse();
// 1.从一维数组到1*25*19*19
......@@ -167,7 +167,7 @@ export default class PostProcess {
// console.log('final', finalData);
// 5.处理画布
// finalData.length && handleCanvas(finalData, img);
this.handleDiv(finalData, img, callback);
this.handleDiv(finalData, img, callback, canavs);
}
calSize(img) {
......@@ -213,7 +213,7 @@ export default class PostProcess {
return finalData;
}
handleDiv(finalData, img, callback) {
handleDiv(finalData, img, callback, canavs) {
if (finalData.length < 1) {
callback();
return false;
......@@ -230,7 +230,7 @@ export default class PostProcess {
let [demoLeft, demoTop, demoWidth, demoHeight] = finalData[maxIndex];
if (!isSimilar(this.lastRect, [demoLeft, demoTop, demoWidth, demoHeight])) {
callback([demoWidth, demoHeight,demoLeft, demoTop]);
callback([demoWidth, demoHeight,demoLeft, demoTop], canavs);
};
this.lastRect = [demoLeft, demoTop, demoWidth, demoHeight];
}
......
......@@ -9,7 +9,6 @@
* r.run(document.getElementById('test'));
* });
*/
import IO from '../feed/ImageFeed';
import DataFeed from '../feed/dataFeed';
import Graph from './loader';
......@@ -43,10 +42,12 @@ export default class Runner {
shape: [1, 3, fh, fw]
}];
const MODEL_URL = `/${path}/model.json`;
let dir = `https://mms-graph.cdn.bcebos.com/activity/facegame/paddle/${path}/`;
if (location.href.indexOf('test=1') > -1) {
dir = `/src/view/common/lib/paddle/${path}/`;
}
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
// dir: `https://graph.baidu.com/mms/graph/static/asset/dll/${path}/`, // rd测试地址
// dir: `/src/view/common/lib/paddle/dist/${path}/`, // 本地测试地址
dir: dir,
main: 'model.json' // 主文件
};
const graphModel = new Graph();
......@@ -77,8 +78,8 @@ export default class Runner {
console.warn('It\'s better to preheat the model before running.');
await this.preheat();
}
log.start('总耗时'); // eslint-disable-line
log.start('预处理'); // eslint-disable-line
// log.start('总耗时'); // eslint-disable-line
// log.start('预处理'); // eslint-disable-line
let feed;
if (typeof input === 'string') {
const dfIO = new DataFeed();
......@@ -103,13 +104,13 @@ export default class Runner {
}
});
}
log.end('预处理'); // eslint-disable-line
log.start('运行耗时'); // eslint-disable-line
// log.end('预处理'); // eslint-disable-line
// log.start('运行耗时'); // eslint-disable-line
let inst = this.model.execute({
input: feed
});
let result = await inst.read();
log.end('后处理-读取数据'); // eslint-disable-line
// log.end('后处理-读取数据'); // eslint-disable-line
const newData = [];
let newIndex = -1;
const [w, h, c, b] = this.modelConfig.outputShapes.from;
......@@ -126,15 +127,15 @@ export default class Runner {
}
}
}
this.postProcess.run(newData, input, callback);
log.end('后处理'); // eslint-disable-line
this.postProcess.run(newData, input, callback, feed[0].canvas);
// log.end('后处理'); // eslint-disable-line
this.flags.isRunning = false;
log.end('总耗时'); // eslint-disable-line
// log.end('总耗时'); // eslint-disable-line
}
// 传入获取图片的function
async runStream(getMedia, callback) {
await this.run(getMedia(), callback);
await this.run(getMedia, callback);
if (!this.flags.runVideoPaused) {
setTimeout(async () => {
await this.runStream(getMedia, callback);
......
import ops from './ops';
/**
* @file 工厂类,生成fragment shader
* @author yangmingming
* @author wangqun
*/
export default class Factory {
constructor(opts) {
......
......@@ -130,6 +130,11 @@ export default {
func: dynamic_func,
confs: dynamic_conf
},
relu6: {
params: dynamic_params,
func: dynamic_func,
confs: dynamic_conf
},
scale: {
params: dynamic_params,
func: dynamic_func,
......
......@@ -6,6 +6,7 @@
export default class imageFeed {
constructor() {
this.fromPixels2DContext = document.createElement('canvas').getContext('2d');
this.fromPixels2DContext2 = document.createElement('canvas').getContext('2d');
this.defaultWidth = 224;
this.defaultHeight = 224;
this.minPixels = 225;
......@@ -32,7 +33,8 @@ export default class imageFeed {
let output = [];
if (!this.result) {
const [b, c, h, w] = params.targetShape;
this.result = new Float32Array(h * w * 3);
// 计算确定targetShape所需Float32Array占用空间
this.result = new Float32Array(h * w * c);
}
output = this.fromPixels(input, params);
return output;
......@@ -49,14 +51,17 @@ export default class imageFeed {
const vPadding = Math.ceil((sh - height) / 2);
let data = imageData.data;
// channel RGB
let red = [];
let green = [];
let blue = [];
// 平均数
let mean = opt.mean;
// 标准差
let std = opt.std;
// 考虑channel因素获取数据
for (let i = 0; i < data.length; i += 4) {
// img_mean 0.485, 0.456, 0.406
//img_std 0.229, 0.224, 0.225
let index = i / 4;
let vIndex = Math.floor(index / sw);
let hIndex = index - (vIndex * sw) - 1;
......@@ -67,6 +72,7 @@ export default class imageFeed {
blue.push(((data[i + 2] / 255) - mean[2]) / std[2]); // blue
}
}
// 转成 GPU 加速 NCHW 格式
let tmp = green.concat(blue);
return red.concat(tmp);
};
......@@ -78,7 +84,7 @@ export default class imageFeed {
allReshapeToRGB(imageData, opt, scaleSize) {
const {sw, sh} = scaleSize;
const [b, c, h, w] = opt.targetShape;
let data = imageData.data;
let data = imageData.data || imageData;
let mean = opt.mean;
let dataLength = data.length;
// let result = new Float32Array(dataLength * 3);
......@@ -127,6 +133,7 @@ export default class imageFeed {
this.fromPixels2DContext.canvas.height = sh;
this.fromPixels2DContext.drawImage(
image, 0, 0, sw, sh);
this.setInputCanvas(image);
return {sw, sh};
};
......@@ -167,11 +174,26 @@ export default class imageFeed {
image, 0, 0, sw, sh);
// currentPic = this.fromPixels2DContext.canvas.toDataURL();
}
this.setInputCanvas(image);
// window.currentPic = this.fromPixels2DContext.canvas;// test only, demele me
// document.getElementById('p-c').appendChild(this.fromPixels2DContext.canvas);// test only, demele me
return {sw: targetWidth, sh: targetHeight};
}
/**
* 设置原始video画布
* @param image 原始video
*/
setInputCanvas(image) {
// 原始图片宽高
const width = this.pixelWidth;
const height = this.pixelHeight;
// 画布设置
this.fromPixels2DContext2.canvas.width = width;
this.fromPixels2DContext2.canvas.height = height;
this.fromPixels2DContext2.drawImage(image, 0, 0, width, height);
}
/**
* 获取图像内容
* @param pixels
......@@ -179,11 +201,12 @@ export default class imageFeed {
*/
getImageData(pixels, scaleSize) {
const {sw, sh} = scaleSize;
// 复制画布上指定矩形的像素数据
let vals = this.fromPixels2DContext
.getImageData(0, 0, sw, sh);
// crop图像
const width = pixels.width;
const height = pixels.height;
// const width = pixels.width;
// const height = pixels.height;
return vals;
};
......@@ -196,6 +219,7 @@ export default class imageFeed {
let data = imageData.data;
for (let i = 0; i < data.length; i += 4) {
// 3 channel 灰度处理无空间压缩
let avg = (data[i] + data[i + 1] + data[i + 2]) / 3;
data[i] = avg; // red
data[i + 1] = avg; // green
......@@ -206,6 +230,8 @@ export default class imageFeed {
fromPixels(pixels, opt) {
let data;
// 原始video画布数据
let data2;
let scaleSize;
if (pixels instanceof HTMLImageElement || pixels instanceof HTMLVideoElement) {
this.pixelWidth = pixels.naturalWidth || pixels.width;
......@@ -213,10 +239,12 @@ export default class imageFeed {
if (opt.scale) { // 兼容以前的,如果有scale就是短边缩放到scale模式
scaleSize = this.reSize(pixels, opt);
data = this.getImageData(opt, scaleSize);
data2 = this.fromPixels2DContext2.getImageData(0, 0, this.pixelWidth, this.pixelHeight);
}
else if (opt.targetSize) { // 如果有targetSize,就是装在目标宽高里的模式
scaleSize = this.fitToTargetSize(pixels, opt);
data = this.getImageData(opt, scaleSize);
data2 = this.fromPixels2DContext2.getImageData(0, 0, this.pixelWidth, this.pixelHeight);
}
}
......@@ -224,14 +252,15 @@ export default class imageFeed {
data = grayscale(data);
}
if (opt.shape) {
if (opt.reShape) {
data = this.reshape(data, opt, scaleSize);
}
if (opt.targetShape) {
data = this.allReshapeToRGB(data, opt, scaleSize);
}
return [{data: data, shape: opt.shape || opt.targetShape, name: 'image'}];
return [{data: data, shape: opt.shape || opt.targetShape, name: 'image', canvas: data2}];
}
}
/* eslint-enable */
......@@ -3,7 +3,7 @@ import VSHADER from '../shader/v_shader';
import VSHADER2 from '../shader/v_shader2';
/**
* @file gpu运算
* @author yangmingming
* @author wangqun@baidu.com, yangmingming@baidu.com
*/
const CONF = {
alpha: false,
......@@ -268,6 +268,7 @@ export default class gpu {
// this.currentTexture = this.textureBuffer[this.textureBufferIndex % 2];
// this.textureBufferIndex = (this.textureBufferIndex + 1) >= 2 ? 0 : 1;
this.currentTexture = this.outTextures[iLayer];
console.log('this.currentTexture', this.currentTexture);
const gl = this.gl;
gl.framebufferTexture2D(gl.FRAMEBUFFER, // The target is always a FRAMEBUFFER.
gl.COLOR_ATTACHMENT0, // We are providing the color buffer.
......@@ -360,9 +361,16 @@ export default class gpu {
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
gl.texImage2D(gl.TEXTURE_2D, 0, this.internalFormat, item.width_texture,
item.height_texture, 0,
this.textureFormat, gl.FLOAT, item.data, 0);
gl.texImage2D(gl.TEXTURE_2D,
0,
this.internalFormat,
item.width_texture,
item.height_texture,
0,
this.textureFormat,
gl.FLOAT,
item.data,
0);
}
}
......@@ -404,14 +412,15 @@ export default class gpu {
render(data = [], iLayer = 0, isRendered = false) {
const gl = this.gl;
let that = this;
let textureIndex = 0;
data.forEach(item => {
if (item.type === 'texture') {
this.initTexture(textureIndex, item, iLayer, isRendered);
gl.uniform1i(this.getUniformLoc(item.variable + '_' + item.tensor, iLayer, isRendered), textureIndex++);
that.initTexture(textureIndex, item, iLayer, isRendered);
gl.uniform1i(that.getUniformLoc(item.variable + '_' + item.tensor, iLayer, isRendered), textureIndex++);
}
else if (item.type === 'uniform') {
gl[item.setter](this.getUniformLoc(item.variable + '_' + item.tensor, iLayer, isRendered), item.data);
gl[item.setter](that.getUniformLoc(item.variable + '_' + item.tensor, iLayer, isRendered), item.data);
}
});
// gl.clearColor(.0, .0, .0, 1);
......@@ -437,7 +446,7 @@ export default class gpu {
gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, buffer);
gl2.getBufferSubData(gl2.PIXEL_PACK_BUFFER, 0, pixels);
gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, null);
log.start('后处理-readloop');
// log.start('后处理-readloop');
// let result = [];
// let offset = 0;
// for (let h = 0; h < this.height_texture_out; h++) {
......@@ -460,7 +469,7 @@ export default class gpu {
}
// const result = Array.prototype.slice.call(pixels);
// console.dir(['result', result]);
log.end('后处理-readloop');
// log.end('后处理-readloop');
return result;
}
......@@ -517,20 +526,20 @@ export default class gpu {
compute() {
let gl = this.gl;
log.start('后处理-readinside');
// log.start('后处理-readinside');
const tt = +Date.now();
let pixels = new Float32Array(this.width_texture_out * this.height_texture_out * 4);
// gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
const tt2 = +Date.now();
gl.readPixels(0, 0, this.width_texture_out, this.height_texture_out, gl.RGBA, gl.FLOAT, pixels, 0);
// console.log('本次读取数据时间是' + (+Date.now() - tt2)+ ',' + (tt2 - tt));
log.end('后处理-readinside');
log.start('后处理-readloop');
// log.end('后处理-readinside');
// log.start('后处理-readloop');
let result = [];
for (let i = 0; i < this.width_texture_out * this.height_texture_out; i++) {
result.push(pixels[4 * i]);
}
log.end('后处理-readloop');
// log.end('后处理-readloop');
return result;
}
......
/* eslint-disable */
import GraphExecutor from './executor';
import GraphExecutor from '../executor/executor';
import IO from '../feed/imageFeed';
import Runtime from '../../src/runtime/runtime';
import Runtime from '../runtime/runtime';
import OpData from '../utils/opData';
import Factory from '../factory/fshader/factory';
import Utils from '../utils/utils';
/**
* @file GraphModel,绘制生成model网络
* @file Graph,绘制生成model网络
* @author wangqun@baidu.com
*/
let start = 0;
// 生成factory实例
const factory = new Factory({});
// 获取op的输入配置
const opConfs = factory.getOpConfs();
export default class GraphModel {
constructor(modelGonfig, loadOptions) {
export default class Graph {
constructor(options) {
this.version = '0.0.1';
this.handler = 'io.IOHandler';
this.modelGonfig = modelGonfig;
this.loadOptions = loadOptions;
this.multipart = false;
this.weightMap = '';
this.options = options || {};
// feed数据
this.feed = null;
this.index = 0;
this.feedOp = null;
this.feedItem = null;
this.test = false;
this.isExecuted = false;
// 网络层数
this.iLayer = 0;
// fetch xhr jsonp
this.params = {type: 'fetch'};
// 设置分片加载model
if (this.loadOptions) {
this.multipart = this.loadOptions.multipart;
this.feed = {input: this.loadOptions.feed};
if (loadOptions.dataType === 'binary') {
this.binaryOption = loadOptions.binaryOption;
}
if (this.options && this.options.options && this.options.options.test === true) {
this.test = true;
}
if (!this.loadOptions) {
this.loadOptions = {};
} else {
if (!this.inst) {
// op runner
this.inst = Runtime.init();
factory.setWebglVersion(this.inst.getWebglVersion());
// this.fetchJson(this.modelGonfig.dir + 'x.json').then(data => {
// const [b, c, h, w] = [1, 3, 320, 320];
// const size = data.length;
// const total = 3 * 320 * 320;
// this.testData = new Float32Array(total);
// for (let i = 0; i < size; i++) {
// let j = i / (c * w) | 0;
// let k = i % (c * w);
// let b1 = j / h | 0;
// let h1 = j % h;
// let c1 = k % c;
// let w1 = k / c | 0;
// let l = b1 * (c * h * w) + c1 * (h * w) + h1 * (w) + w1;
// this.testData[i] = data[l];
// }
// });
}
}
fetchOneChunk(path) {
return this.fetch(path).then(request => {
return request.arrayBuffer();
})
}
fetchJson(path) {
return this.fetch(path).then(request => {
return request.json();
})
}
fetchAllData() {
// todo 兼容一下json的模式
let counts = this.binaryOption.fileCount;
let chunkArray = [];
for (let i = 1; i <= counts; i++) {
chunkArray.push(
this.fetchOneChunk(this.modelGonfig.dir + this.binaryOption.getFileName(i))
);
}
console.time('加载时间');
return Promise.all(chunkArray).then(chunks => {
console.timeEnd('加载时间');
let chunksLength = 0;
let f32Array = [];
let float32Chunk;
chunks.forEach(i => {
float32Chunk = new Float32Array(i);
f32Array.push(float32Chunk);
chunksLength += float32Chunk.length;
});
this.allData = new Float32Array(chunksLength);
let offset = 0;
f32Array.forEach(i => {
i.forEach(num => {
this.allData[offset] = num;
offset += 1;
})
});
});
}
traverse (arr) {
const TMP_SCHEME_REGEX = /\.tmp/;
const TMP_REGEX = /\-/;
let marker = 0; // 读到哪个位置了
let len; // 当前op长度
arr.filter(item => {
return item.name
&& item.name.match(TMP_SCHEME_REGEX) === null
&& item.name.match(TMP_REGEX) === null;
})
// .sort((a, b) => {
// if (a.name > b.name) {
// return 1;
// }
// if (a.name < b.name) {
// return -1;
// }
// return 0;
// }) // 按字母顺序排列 在model.json里
.forEach(item => {
len = item.shape.reduce((a, b) => a * b); // 长度为shape的乘积
item.data = this.allData.slice(marker, marker + len);
marker += len;
});
}
fetch(path, params) {
params = params || this.params;
let method = params.method || 'get';
let mode = params.mode || 'cors';
let myHeaders = new Headers();
return fetch(path, {
method: method,
mode: mode,
credentials: 'include',
headers: myHeaders
});
}
fetchModel(params) {
params = params || this.params;
const path = this.modelGonfig.dir + this.modelGonfig.main;
let load = null;
// jsonp请求方式
if (params && params.type === 'jsonp') {
let json;
let s = document.createElement('script');
s.src = path + '&jsonpCallback=fn';
window.fn = function(data) {
json = data;
// console.log(json);
};
//当script被插入文档中时,src中的资源就会开始加载
document.body.appendChild(s);
load = new Promise((resolve, reject) => {
s.onload = function(e) {
resolve(json);
}
s.onerror = function() {
reject(json);
}
});
this.handler = load;
}
// 原生fetch
else if (params.type === 'fetch') {
load = new Promise((resolve, reject) => {
this.fetch(path, params)
.then(response => response.json())
.then(responseData => resolve(responseData))
.then(err => reject(err))
});
this.handler = load;
}
// ajax
else if (params.type === 'xhr') {
this.handler = load;
}
return load;
}
async load() {
let that = this;
const artifacts = this.handler = await this.fetchModel();
if (this.multipart === true) {
await this.fetchAllData()
.then(() => this.traverse(artifacts.vars));
}
const opsMap = this.createOpsMap(artifacts.ops, artifacts.vars);
this.weightMap = this.constructOpsMap(opsMap);
// 生成op数据
this.weightMap.forEach(op => {
const type = op.type;
if (type !== 'feed' && type !== 'fetch') {
that.buildOpData(op);
}
});
return true;
}
buildOpData(op) {
const tensor = this.constructTensor(op);
const opData = new OpData(op.type, tensor.inputs, tensor.outputs, tensor.attrs);
const executor = this.constructExecutor(op);
const opData = new OpData(op.type, executor.inputs, executor.outputs, executor.attrs);
const name = opData.name;
const fsCode = factory.buildShader(name, opData.data);
opData.fsCode = fsCode;
opData.program = this.inst.createProgram(fsCode, opData.tensor['out']);
opData.renderData = opConfs[name].map(elem => {
......@@ -214,6 +57,7 @@ export default class GraphModel {
const tensorData = opData.tensor[item.tensor];
if (item.type === 'texture') {
item.data = tensorData.data;
if (this.feedOp.id === op.id && item.tensor === 'origin') {
item.shape = tensorData.shape;
this.feedItem = item;
......@@ -226,6 +70,7 @@ export default class GraphModel {
}
return item;
});
// console.timeEnd('opData.renderData');
opData.iLayer = this.iLayer++;
op.opData = opData;
......@@ -238,10 +83,11 @@ export default class GraphModel {
return;
}
executor.execute(this.inst, this.isExecuted);
// if (executor.next && start++ < 2) {
if (executor.next) {
const id = executor.next;
const next = this.getTensor(id);
this.execute_(next[0])
this.execute_(next[0]);
}
}
/**
......@@ -262,7 +108,6 @@ export default class GraphModel {
if (this.isExecuted) {
this.updateFeed();
}
let start = +Date.now();
this.execute_(executor[0]);
this.isExecuted = true;
return this.inst;
......@@ -280,13 +125,13 @@ export default class GraphModel {
return this.execute_(inputs, true, this.outputNodes);
}
getTensorAttr(name) {
return this.handler.vars.filter((item, i) => {
return this.data.vars.filter((item, i) => {
if (name === item.name)
return item;
});
}
constructTensor(executor) {
const that = this;
constructExecutor(executor) {
let that = this;
const inputName = executor.inputsName[0];
const input = executor.inputs;
const output = executor.outputs;
......@@ -294,14 +139,22 @@ export default class GraphModel {
output[key] = that.getTensorAttr(output[key][0]);
});
Object.keys(input).forEach(function(key){
if ((key === 'Input') && (inputName === 'pixel')) {
const pixel = that.getTensorAttr(inputName);
const io = new IO();
input[key] = io.fromPixels(data, pixel);
if (that.test && ((key === 'Input') || (key === 'X'))) {
input[key] = that.getTensorAttr(input[key][0]);
that.feedOp = executor;
}
else if ((key === 'Input') && (inputName === 'pixel')) {
// const pixel = that.getTensorAttr(inputName);
// const io = new IO();
// input[key] = io.fromPixels(that.feed, pixel);
input[key] = that.feed.input;
that.feedOp = executor;
}
else if ((key === 'Input') && (inputName === 'image' || inputName === 'x')) {
// that.feed.input[0].data = that.testData;
input[key] = that.feed.input;
that.feedOp = executor;
}
else {
......@@ -309,14 +162,13 @@ export default class GraphModel {
}
});
// console.log(input);
const tensor = {
return {
inputs: input,
outputs: output,
attrs: executor.attrs,
type: executor.type,
next: executor.next
};
return tensor;
}
/**
* Construct Ops Relationship
......@@ -393,26 +245,7 @@ export default class GraphModel {
}
});
}
/**
* Load a graph model given a URL to the model definition.
* @param modelGonfig
* @param options
* @returns {Promise<void>}
*/
async loadGraphModel(modelGonfig, options) {
if (modelGonfig === null) {
// todo saniac 报错提示修改
throw new Error(
'modelGonfig in loadGraphModel() cannot be null. Please provide a url ' +
'or an IOHandler that loads the model');
}
if (options === null) {
options = {};
}
const model = new GraphModel(modelGonfig, options);
await model.load();
return model;
}
/**
* dispose
*/
......
import 'babel-polyfill';
import Graph from './executor/loader';
import IO from './executor/io';
/**
* @file model demo 入口文件
* @author yangmingming@baidu.com
*
*/
// 'http://mms-xr.cdn.bcebos.com/paddle/mnist/model.json'
const MODEL_URL = '../demo/model/model.json';
const graphModel = new Graph();
const model = graphModel.loadGraphModel(MODEL_URL);
const cat = document.getElementById('pic');
const io = new IO();
let inst = model.execute({input: cat});
let res = inst.read();
console.dir(['result', res]);
var fileDownload = require('js-file-download');
fileDownload(res, "result.csv");
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>paddle web demo</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
</head>
<body>
<div><img id="pic" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAcABwBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APn+vTPDHwP8TeJ9DtdXiuLCzt7kbo0uWcOU7NgKRgjkc81i+O/hvrPgW8xco1zp7ELHfIm1HYqCRjJIPUc9cHFcbSgEnABJ9BXaafH8Rrrw3NpdjBrkmjohLQLE/l7c5OOPUHgV6Fcw3um/sxXNt4hZo7qW5X7FDdLtlRfOU7QG5zgSH/dPpXhFel/Bzxj4a8H6vfzeILZy86ILe6WLzPI27i3HUZ+XkA9PQ16Pc/Hfw7pM91LaXusa20wDRxSQRQww9eAdob35DfWuNg+Ny67Dfab430SDUNLuQxjW2UK8BwcAZPPOPmyCOvPSvH6KKKK//9k=" ></div>
</body>
<script src="index.es6"></script>
</html>
/* eslint-disable */
/**
* @file loader,model加载器
* @author wangqun@baidu.com
*/
export default class Loader {
constructor(modelGonfig, options) {
this.version = '0.0.1';
this.data = {};
this.modelGonfig = modelGonfig;
this.options = options;
this.multipart = false;
this.test = false;
// fetch xhr jsonp
this.params = {type: 'fetch'};
// 设置分片加载model
if (this.options) {
this.multipart = this.options.multipart;
if (options.dataType === 'binary') {
this.binaryOption = options.options;
this.dataType = options.dataType;
}
if (options.test) {
this.test = true;
}
}
if (!this.loadOptions) {
this.loadOptions = {};
}
}
fetchOneChunk(path) {
return this.fetch(path).then(request => {
return request.arrayBuffer();
})
}
fetchJson(path) {
return this.fetch(path).then(request => {
return request.json();
})
}
fetchChunks() {
let counts = this.binaryOption.fileCount;
let chunkArray = [];
for (let i = 1; i <= counts; i++) {
chunkArray.push(
this.fetchOneChunk(this.modelGonfig.dir + this.binaryOption.getFileName(i))
);
}
// console.time('加载时间');
return Promise.all(chunkArray).then(chunks => {
// console.timeEnd('加载时间');
let chunksLength = 0;
let f32Array = [];
let float32Chunk;
chunks.forEach(i => {
float32Chunk = new Float32Array(i);
f32Array.push(float32Chunk);
chunksLength += float32Chunk.length;
});
this.allData = new Float32Array(chunksLength);
let offset = 0;
f32Array.forEach(i => {
i.forEach(num => {
this.allData[offset] = num;
offset += 1;
})
});
});
}
fetchData(name) {
const path = this.modelGonfig.dir + name + '.json';
let load = new Promise((resolve, reject) => {
fetch(path, {
method: 'get', mode: 'cors', credentials: "include",
headers: { 'Content-Type': 'application/json;charset=utf-8'}})
.then(response => response.json())
.then(responseData => resolve(responseData))
.then(err => reject(err))
})
return load;
}
async fetchAllDate (arr) {
const TMP_SCHEME_REGEX = /\.tmp/;
const TMP_REGEX = /\-/;
let requesterArr = arr.map(item => {
if (item.name
&& item.name.match(TMP_SCHEME_REGEX) === null
&& item.name.match(TMP_REGEX) === null) {
return this.fetchData(item.name).then(data => item.data = data);
}
return Promise.resolve();
});
return Promise.all(requesterArr);
}
traverse (arr) {
const TMP_SCHEME_REGEX = /\.tmp/;
const TMP_REGEX = /\-/;
let marker = 0; // 读到哪个位置了
let len; // 当前op长度
arr.filter(item => {
return item.name
&& item.name.match(TMP_SCHEME_REGEX) === null
&& item.name.match(TMP_REGEX) === null;
})
.forEach(item => {
len = item.shape.reduce((a, b) => a * b); // 长度为shape的乘积
item.data = this.allData.slice(marker, marker + len);
marker += len;
});
}
fetch(path, params) {
params = params || this.params;
let method = params.method || 'get';
let mode = params.mode || 'no-cors';
let myHeaders = new Headers();
return fetch(path, {
method: method,
// mode: mode,
// credentials: 'include',
headers: myHeaders
});
}
fetchModel(params) {
params = params || this.params;
const path = this.modelGonfig.dir + this.modelGonfig.main;
let load = null;
// jsonp请求方式
if (params && params.type === 'jsonp') {
let json;
let s = document.createElement('script');
s.src = path + '&jsonpCallback=fn';
window.fn = function(data) {
json = data;
// console.log(json);
};
//当script被插入文档中时,src中的资源就会开始加载
document.body.appendChild(s);
load = new Promise((resolve, reject) => {
s.onload = function(e) {
resolve(json);
}
s.onerror = function() {
reject(json);
}
});
this.data = load;
}
// 原生fetch
else if (params.type === 'fetch') {
load = new Promise((resolve, reject) => {
this.fetch(path, params)
.then(response => response.json())
.then(responseData => resolve(responseData))
.then(err => reject(err))
});
this.data = load;
}
// ajax
else if (params.type === 'xhr') {
this.data = load;
}
return load;
}
async load() {
let that = this;
const artifacts = this.data = await this.fetchModel();
if (this.multipart === true) {
if (this.dataType === 'binary') {
await this.fetchChunks()
.then(() => this.traverse(artifacts.vars));
}
else {
await that.fetchAllDate(artifacts.vars);
}
}
return artifacts;
}
}
/* eslint-enable */
/* eslint-disable */
import 'babel-polyfill';
import Loader from '../loader/loader';
import Graph from '../graph/graph';
/**
* @file paddle对象,负责加载模型和执行在线推理
* @author wangqun@baidu.com
*/
export default class Paddle {
constructor(options) {
this.version = '0.0.1';
this.loader = '';
this.options = options;
this.graph = '';
this.multipart = false;
// feed数据
this.feed = null;
this.index = 0;
this.feedOp = null;
this.feedItem = null;
this.test = false;
this.isExecuted = false;
// 网络层数
this.iLayer = 0;
// fetch xhr jsonp
this.params = {type: 'fetch'};
}
async load() {
if (this.options === null) {
// todo saniac 报错提示修改
throw new Error(
'modelGonfig in loadGraphModel() cannot be null. Please provide a url ' +
'or an IOHandler that loads the model');
}
const model = new Loader(this.options.urlConf, this.options.options);
await model.load();
this.preGraph(model);
return this;
}
preGraph (artifacts) {
let that = this;
const graph = new Graph(that.options);
that.graph = graph;
that.graph.data = artifacts.data;
const opsMap = that.graph.createOpsMap(that.graph.data.ops, that.graph.data.vars);
that.graph.weightMap = that.graph.constructOpsMap(opsMap);
}
/**
* Executes inference for the model for given input tensors.
* @param inputs
* @param outputs
* @returns {*}
*/
execute(inputs) {
debugger;
let that = this;
this.feed = this.graph.feed = inputs;
// 生成op数据
if (!this.graph.isExecuted) {
this.graph.weightMap.forEach(op => {
const type = op.type;
if (type !== 'feed' && type !== 'fetch') {
console.log(op.type);
that.graph.buildOpData(op);
}
});
}
this.graph.execute(inputs);
return this.graph.inst;
}
updateFeed() {
this.graph.feedItem.data = this.graph.feed.input[0].data;
// Utils.img2texture(this.graph.feedItem);
}
/**
* dispose
*/
dispose() {
this.graph.dispose();
}
}
/* eslint-enable */
......@@ -3,7 +3,7 @@ import Gpu from '../gpu/gpu';
import getMaxUniforms from '../test/getMaxUniforms';
/**
* @file gpu运行时
* @author yangmingming
* @author wangqun@baidu.com, yangmingming@baidu.com
*
*/
export default {
......@@ -73,10 +73,10 @@ export default {
async read() {
const pbo = this.gpu.createPBO();
await this.gpu.createAndWaitForFence();
log.end('运行耗时');
log.start('后处理');
// log.end('运行耗时');
// log.start('后处理');
// 其实这里应该有个fetch的执行调用或者fetch的输出
log.start('后处理-读取数据');
// log.start('后处理-读取数据');
// 开始读数据
return this.gpu.downloadFoat32TensorFromBuffer(pbo);
},
......
......@@ -10,9 +10,14 @@ float prelu(float x, float p, float b) {
if (x < 0.0) {
result = x * p;
}
return result;
}
float relu6(float x, float threshold, float b) {
float result = max(0.0,x);
result = min(result,threshold);
return result;
}
float leakyRelu(float x, float p, float b) {
float result = max(x, x * p);
return result;
......@@ -32,4 +37,6 @@ float softmax(float x, float p, float b) {
float result = exp(x) / (10.0 * exp(x));
return result;
}
`;
......@@ -2,6 +2,7 @@
/**
* @file 公共方法
* @author yangmingming
*
*/
export default `
......
......@@ -2,11 +2,13 @@
/**
* @file 公共方法
* @author yangmingming
* @desc 获取输出tensor的坐标
*/
export default `
ivec4 getOutputTensorPos() {
// 获取原始长度
vec2 outCoord = moveTexture2PosToReal_texture_out(vCoord.xy);
// 材质体系转tensor体系坐标位置
int x = int(outCoord.x / float(channel_out));
int c = int(mod(outCoord.x, float(channel_out)));
int y = int(mod(outCoord.y, float(height_shape_out)));
......
......@@ -2,6 +2,7 @@
/**
* @file 公共方法
* @author yangmingming
* desc 根据当前材质坐标位置获取值
*/
// 获取材质中的像素
export default `
......
......@@ -2,8 +2,10 @@
/**
* @file 公共方法
* @author yangmingming
* desc 根据tensor坐标获取这个tensor位置的值
*/
export default `
// 根据tensor坐标获取这个tensor位置的值
float getValueFromTensorPos_TENSOR_NAME(int r, int g, int b, int a) {
vec4 pixels = TEXTURE2D(texture_TENSOR_NAME,
vec2(
......@@ -11,9 +13,10 @@ float getValueFromTensorPos_TENSOR_NAME(int r, int g, int b, int a) {
(float(r * height_shape_TENSOR_NAME + b) + 0.5) / float(height_texture_TENSOR_NAME)
)
);
// 只用了r通道
return pixels.r;
}
// 紧凑型布局根据tensor坐标获取这个tensor位置的值
float getValueFromTensorPosLimit_TENSOR_NAME(int r, int g, int b, int a) {
float halfW = ceil(float(width_shape_TENSOR_NAME) / 2.0);
int x = int(mod(float(a), halfW));
......
......@@ -2,6 +2,7 @@
/**
* @file 公共方法
* @author yangmingming
* desc packed布局 根据tensor坐标获取这个tensor位置的值
*/
export default `
float getValueFromTensorPosPacked_TENSOR_NAME(int r, int g, int b, int a) {
......
......@@ -2,6 +2,7 @@
/**
* @file 公共方法
* @author yangmingming
* desc 根据材质坐标获取这个材质位置的值
*/
// TEXTURE_NAME, tensor name
// 获取材质中的数据
......
......@@ -2,18 +2,24 @@
/**
* @file 公共方法
* @author yangmingming
* desc 坐标转化
*/
// TEXTURE_NAME, 材质name
// 材质坐标转化成真实尺寸坐标
export default `
vec2 _2d_shape_TEXTURE_NAME = vec2(float(width_TEXTURE_NAME), float(height_TEXTURE_NAME));
// vec2 moveTexture2PosToReal_TEXTURE_NAME(vec2 v) {
// return v * _2d_shape_TEXTURE_NAME;
// // vec2 v2;
// // v2.x = v.x * float(width_TEXTURE_NAME);
// // v2.y = v.y * float(height_TEXTURE_NAME);
// // return v2;
// }
vec2 moveTexture2PosToReal_TEXTURE_NAME(vec2 v) {
return v * _2d_shape_TEXTURE_NAME;
// vec2 v2;
// v2.x = v.x * float(width_TEXTURE_NAME);
// v2.y = v.y * float(height_TEXTURE_NAME);
// return v2;
vec2 v2;
v2.x = v.x * float(width_TEXTURE_NAME);
v2.y = v.y * float(height_TEXTURE_NAME);
return v2;
}
`;
......@@ -11,7 +11,7 @@ export default `
precision mediump float;
precision mediump int;
#endif
varying vec2 vCoord;
void setOutput(float result) {
gl_FragColor.r = result;
}
......
/* eslint-disable */
/**
* @file 激活函数
* @author yangmingming
* @author wangqun@baidu.com
*/
export default `
float scale(float x, float p, float b) {
......
/* eslint-disable */
/**
* @file softmax激活函数
* @author yangmingming
* @author wangqun
*/
export default `
float softmax(float x, float p, float b) {
......
......@@ -26,14 +26,12 @@ export default {
'HEIGHT_TEXTURE_ORIGIN',
'CHANNEL_ORIGIN',
'TOTAL_SHAPE_ORIGIN',
'WIDTH_SHAPE_OUT',
'HEIGHT_SHAPE_OUT',
'WIDTH_TEXTURE_OUT',
'HEIGHT_TEXTURE_OUT',
'CHANNEL_OUT',
'OFFSET_Y_OUT',
'EPSILON',
'WIDTH_TEXTURE_SCALE',
'HEIGHT_TEXTURE_SCALE',
......
/* eslint-disable */
/**
* @file softmax主函数
* @author yangmingming
* @file batchnorm主函数
* @author wangqun
*/
export default `
// start函数
void main(void) {
// 输出数据
ivec4 oPos = getOutputTensorPos();
float o = getValueFromTensorPos_origin(oPos);
float o = getValueFromTensorPos_origin(oPos.r, oPos.g, oPos.b, oPos.a);
// 归一化数据
vec4 scale = getPixelsFromTexturePos_texture_scale(vec2((float(int(oPos.g)) + 0.5) / float(width_texture_scale), 0.0));
float x = (o - scale[3]) / sqrt(scale[2] + epsilon);
float res = scale[0] * x + scale[1];
setOutput(res);
}
`;
\ No newline at end of file
......@@ -12,12 +12,10 @@ const int width_texture_origin = WIDTH_TEXTURE_ORIGIN;
const int height_texture_origin = HEIGHT_TEXTURE_ORIGIN;
const int channel_origin = CHANNEL_ORIGIN;
const int total_shape_origin = TOTAL_SHAPE_ORIGIN;
// 计算数据
const float epsilon = float(EPSILON);
const int width_texture_scale = WIDTH_TEXTURE_SCALE;
const int height_texture_scale = HEIGHT_TEXTURE_SCALE;
// 输入数据
uniform sampler2D texture_origin;
uniform sampler2D texture_scale;
......
/* eslint-disable */
graph.es6/* eslint-disable */
/**
* @file mul的配置文件
* @author yangmingming zhangmiao06
......
......@@ -6,12 +6,14 @@
export default `
// start函数
void main(void) {
float res = 0.0;
vec4 v4 = getPixelsFromTexturePos_texture_origin(vCoord);
vec2 onePixel = vec2(1.0 / float(width_texture_origin), 1.0 / float(height_texture_origin));
float total = 0.0;
float maxValue = getPixelsFromTexturePos_texture_origin(onePixel).r;
int number = 0;
vec4 pixels;
vec4 result;
// 求最大
for (int i = 0; i < height_texture_origin; i++) {
for (int j = 0; j < width_texture_origin; j++) {
......@@ -50,6 +52,9 @@ void main(void) {
}
}
}
gl_FragColor = exp(v4 - vec4(maxValue, maxValue, maxValue, maxValue)) / vec4(total, total, total, total) ;
outColor = exp(v4 - vec4(maxValue, maxValue, maxValue, maxValue)) / vec4(total, total, total, total);
// res = result.a;
// setOutput(res);
}
`;
/* eslint-disable */
/**
* @file 顶点文件
* @author yangmingming
* @author wangqun
* @desc  顶点坐标系转换,适配webgl1
*/
export default `
attribute vec4 position;
varying vec2 vCoord;
void main() {
vCoord.x = (position.x + 1.0) / 2.0;
vCoord.y = (position.y + 1.0) / 2.0;
......
/* eslint-disable */
/**
* @file 顶点文件,webgl 2.0
* @author yangmingming
* @author wangqun
* @desc  顶点坐标系转换,适配webgl2
*/
export default `#version 300 es
in vec4 position;
out vec2 vCoord;
void main() {
vCoord.x = (position.x + 1.0) / 2.0;
vCoord.y = (position.y + 1.0) / 2.0;
......
......@@ -3,7 +3,7 @@ import Utils from './utils';
import Tensor from './tensor';
/**
* @file op的数据对象
* @author yangmingming
* @author wangqun, yangmingming
*
*/
const keys = [
......@@ -38,7 +38,7 @@ const shaderAttrs = {
'pooling_type': 'type_pool'
}
};
// model的名字和paddle web的tensor名字mapping
// model的名字和paddleJS的tensor名字mapping
const tensorName = {
'input': 'origin',
'x': 'origin',
......@@ -80,6 +80,10 @@ const opBehavior = {
'transToPrelu',
'needBatch'
],
relu6: [
'transToRelu6',
'needBatch'
],
leaky_relu: [
'transToLeakyrelu',
'needBatch'
......@@ -87,17 +91,25 @@ const opBehavior = {
mul: [
'reshape',
'needBatch'
],
softmax: [
]
};
const mergeType = 'conv2d-elementwise_add';
export default class OpData {
constructor(name, input = {}, output = {}, attrs = {}) {
console.log('now in constructor');
console.dir(name);
console.dir(input);
console.dir(output);
this.realName = name;
this.name = name;
this.attrs = attrs;
// 检查是否是融合op
this.checkIsMerge();
// 是否忽略当前当前op, 使用dropout
// dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。
this.isPass = this.checkIsPass();
if (this.isPass) {
this.input = input;
......@@ -172,6 +184,9 @@ export default class OpData {
}
});
// console.dir(['tensors', this.tensor]);
// console.log('now in buildTensor show this and tensorData');
// console.log(this);
// console.log(tensorData);
}
buildAttrs() {
......@@ -283,10 +298,14 @@ export default class OpData {
item.notTensor = true;
}
});
return;
// mobilenet model
// todo: 默认y的shape length是1, 以后需要实现通用版本
console.log('2. x and y is ');
console.log(x);
console.log(y);
let shape = Utils.getBroadcastShapeInPaddle(x.shape, y.shape, this.attrs['axis']);
// 填充shape数据
if (small.shape.length === 1) {
......@@ -316,6 +335,11 @@ export default class OpData {
this.data['active_function'] = 'prelu';
}
transToRelu6(tensorData = []) {
this.data['multi_value'] = this.attrs['threshold'];
this.data['active_function'] = 'relu6';
}
transToLeakyrelu(tensorData = []) {
this.data['multi_value'] = this.attrs.alpha;
this.data['active_function'] = 'leakyRelu';
......@@ -347,6 +371,7 @@ export default class OpData {
mergeTensor(tensorData = []) {
// 融合scale、bias、variance、mean
let constants = ['scale', 'bias', 'variance', 'mean'];
let result = {};
let data = [];
......@@ -354,13 +379,18 @@ export default class OpData {
result[tensor.tensorName] = tensor;
result[tensor.tensorName + 'Index'] = index;
});
for (let i = 0; i < result[constants[0]].shape[0]; i++) {
data.push(result[constants[0]].data[i]);
data.push(result[constants[1]].data[i]);
data.push(result[constants[2]].data[i]);
data.push(result[constants[3]].data[i]);
}
tensorData[result[constants[0] + 'Index']].data = data;
for (let i = 0; i < constants.length; i++){
tensorData[result[constants[i] + 'Index']].data = result[constants[i]].data;
}
// 充分利用shader空间
tensorData[result[constants[0] + 'Index']].notCompressed = true;
tensorData[result[constants[0] + 'Index']].shape[0] *= 4;
......
/* eslint-disable */
import Utils from './utils';
/**
* @file Tensor类
* @author yangmingming
* @author wangqun, yangmingming
*/
export default class Tensor {
constructor(opts = {}) {
......@@ -33,6 +32,7 @@ export default class Tensor {
// tensor数据
let data;
if (opts.type === 'image' || opts.type === 'x') {
console.log('image', this.data);
this.data = opts.data;
}
else if (opts.data && opts.data.length) {
......@@ -42,7 +42,7 @@ export default class Tensor {
let c = shape[1];
let h = shape[2];
let w = shape[3];
if (w) {
for (let i = 0; i < opts.data.length; i++) {
let j = i / (c * w) | 0;
let k = i % (c * w);
......@@ -54,6 +54,15 @@ export default class Tensor {
data[i] = opts.data[l];
}
this.data = data;
}
else {
if (opts.data.length > this.total) {
opts.data = opts.data.slice(0, this.total);
}
this.data = new Float32Array(opts.data);
debugger;
}
} else {
// batchnorm的scale
this.shape_texture = [4, 1, this.total / 4];
......@@ -158,4 +167,3 @@ export default class Tensor {
}
}
}
/* eslint-enable */
/**
* @file 工具类
* @author yangmingming
* @author wangqun, yangmingming
*/
/* eslint-disable */
export default {
// todo: 适用2维矩阵乘法,以后实现通用版本
getReshapeInPaddle(inputShape = [], counterShape = [], outShape = []) {
......@@ -109,10 +108,10 @@ export default {
* @return {{shape: *[], zeroNumber: number}} {Object} texture信息
*/
getTextureInfoFromTensorShape(shape = [], isPacked = false) {
let b = shape[0];
let c = shape[1];
let h = shape[2];
let w = shape[3];
let b = shape[0] || 1;
let c = shape[1] || 1;
let h = shape[2] || 1;
let w = shape[3] || 1;
let height = b * h;
let width = c * w;
let offsetX = 0;
......@@ -179,12 +178,7 @@ export default {
let l = b1 * (c * h * w) + c1 * (h * w) + h1 * (w) + w1;
data[offset] = renderData.data[l];
offset += 4;
// data.push(renderData.data[l]);
// data.push(0);
// data.push(0);
// data.push(0);
}
renderData.data = data;
}
};
/* eslint-enable */
# PaddleJS Examples
百度PaddleJS使用现成的 JavaScript 模型或转换 Paddle 模型以在浏览器中运行。
## 演示
目前Web项目运行TinyYolo模型可以达到30ms以内,对于一般的实时场景已经足够应对。
### 模块化
## 浏览器覆盖面
* PC: Chrome
* Mac: Chrome
* Android: Baidu App and QQ Browser
## 构建部署
```bash
cd web # 进入根目录
npm i # 安装依赖
mkdir dist # 创建资源目录
cd dist # 进入资源目录
git clone https://github.com/DerekYangMing/Paddle-Web-Models.git # 获取模型
mv Paddle-Web-Models/separablemodel . # 移动模型到制定地点
cd .. # 返回根目录
npm run tinyYolo # 启动 tinyYolo 在线推理服务
```
## 如何预览 demo
1. 在浏览器中打开url: https://localhost:8123/
2. 点击【开始检测】按钮。
3. 将人脸对准摄像头,没有问题的话,可以正常检测到人脸。
## 效果
![image](./tinyYolo/demoshow.png)
{0: 'tench, Tinca tinca',
1: 'goldfish, Carassius auratus',
2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias',
3: 'tiger shark, Galeocerdo cuvieri',
4: 'hammerhead, hammerhead shark',
5: 'electric ray, crampfish, numbfish, torpedo',
6: 'stingray',
7: 'cock',
8: 'hen',
9: 'ostrich, Struthio camelus',
10: 'brambling, Fringilla montifringilla',
11: 'goldfinch, Carduelis carduelis',
12: 'house finch, linnet, Carpodacus mexicanus',
13: 'junco, snowbird',
14: 'indigo bunting, indigo finch, indigo bird, Passerina cyanea',
15: 'robin, American robin, Turdus migratorius',
16: 'bulbul',
17: 'jay',
18: 'magpie',
19: 'chickadee',
20: 'water ouzel, dipper',
21: 'kite',
22: 'bald eagle, American eagle, Haliaeetus leucocephalus',
23: 'vulture',
24: 'great grey owl, great gray owl, Strix nebulosa',
25: 'European fire salamander, Salamandra salamandra',
26: 'common newt, Triturus vulgaris',
27: 'eft',
28: 'spotted salamander, Ambystoma maculatum',
29: 'axolotl, mud puppy, Ambystoma mexicanum',
30: 'bullfrog, Rana catesbeiana',
31: 'tree frog, tree-frog',
32: 'tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui',
33: 'loggerhead, loggerhead turtle, Caretta caretta',
34: 'leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea',
35: 'mud turtle',
36: 'terrapin',
37: 'box turtle, box tortoise',
38: 'banded gecko',
39: 'common iguana, iguana, Iguana iguana',
40: 'American chameleon, anole, Anolis carolinensis',
41: 'whiptail, whiptail lizard',
42: 'agama',
43: 'frilled lizard, Chlamydosaurus kingi',
44: 'alligator lizard',
45: 'Gila monster, Heloderma suspectum',
46: 'green lizard, Lacerta viridis',
47: 'African chameleon, Chamaeleo chamaeleon',
48: 'Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis',
49: 'African crocodile, Nile crocodile, Crocodylus niloticus',
50: 'American alligator, Alligator mississipiensis',
51: 'triceratops',
52: 'thunder snake, worm snake, Carphophis amoenus',
53: 'ringneck snake, ring-necked snake, ring snake',
54: 'hognose snake, puff adder, sand viper',
55: 'green snake, grass snake',
56: 'king snake, kingsnake',
57: 'garter snake, grass snake',
58: 'water snake',
59: 'vine snake',
60: 'night snake, Hypsiglena torquata',
61: 'boa constrictor, Constrictor constrictor',
62: 'rock python, rock snake, Python sebae',
63: 'Indian cobra, Naja naja',
64: 'green mamba',
65: 'sea snake',
66: 'horned viper, cerastes, sand viper, horned asp, Cerastes cornutus',
67: 'diamondback, diamondback rattlesnake, Crotalus adamanteus',
68: 'sidewinder, horned rattlesnake, Crotalus cerastes',
69: 'trilobite',
70: 'harvestman, daddy longlegs, Phalangium opilio',
71: 'scorpion',
72: 'black and gold garden spider, Argiope aurantia',
73: 'barn spider, Araneus cavaticus',
74: 'garden spider, Aranea diademata',
75: 'black widow, Latrodectus mactans',
76: 'tarantula',
77: 'wolf spider, hunting spider',
78: 'tick',
79: 'centipede',
80: 'black grouse',
81: 'ptarmigan',
82: 'ruffed grouse, partridge, Bonasa umbellus',
83: 'prairie chicken, prairie grouse, prairie fowl',
84: 'peacock',
85: 'quail',
86: 'partridge',
87: 'African grey, African gray, Psittacus erithacus',
88: 'macaw',
89: 'sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita',
90: 'lorikeet',
91: 'coucal',
92: 'bee eater',
93: 'hornbill',
94: 'hummingbird',
95: 'jacamar',
96: 'toucan',
97: 'drake',
98: 'red-breasted merganser, Mergus serrator',
99: 'goose',
100: 'black swan, Cygnus atratus',
101: 'tusker',
102: 'echidna, spiny anteater, anteater',
103: 'platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus',
104: 'wallaby, brush kangaroo',
105: 'koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus',
106: 'wombat',
107: 'jellyfish',
108: 'sea anemone, anemone',
109: 'brain coral',
110: 'flatworm, platyhelminth',
111: 'nematode, nematode worm, roundworm',
112: 'conch',
113: 'snail',
114: 'slug',
115: 'sea slug, nudibranch',
116: 'chiton, coat-of-mail shell, sea cradle, polyplacophore',
117: 'chambered nautilus, pearly nautilus, nautilus',
118: 'Dungeness crab, Cancer magister',
119: 'rock crab, Cancer irroratus',
120: 'fiddler crab',
121: 'king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica',
122: 'American lobster, Northern lobster, Maine lobster, Homarus americanus',
123: 'spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish',
124: 'crayfish, crawfish, crawdad, crawdaddy',
125: 'hermit crab',
126: 'isopod',
127: 'white stork, Ciconia ciconia',
128: 'black stork, Ciconia nigra',
129: 'spoonbill',
130: 'flamingo',
131: 'little blue heron, Egretta caerulea',
132: 'American egret, great white heron, Egretta albus',
133: 'bittern',
134: 'crane',
135: 'limpkin, Aramus pictus',
136: 'European gallinule, Porphyrio porphyrio',
137: 'American coot, marsh hen, mud hen, water hen, Fulica americana',
138: 'bustard',
139: 'ruddy turnstone, Arenaria interpres',
140: 'red-backed sandpiper, dunlin, Erolia alpina',
141: 'redshank, Tringa totanus',
142: 'dowitcher',
143: 'oystercatcher, oyster catcher',
144: 'pelican',
145: 'king penguin, Aptenodytes patagonica',
146: 'albatross, mollymawk',
147: 'grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus',
148: 'killer whale, killer, orca, grampus, sea wolf, Orcinus orca',
149: 'dugong, Dugong dugon',
150: 'sea lion',
151: 'Chihuahua',
152: 'Japanese spaniel',
153: 'Maltese dog, Maltese terrier, Maltese',
154: 'Pekinese, Pekingese, Peke',
155: 'Shih-Tzu',
156: 'Blenheim spaniel',
157: 'papillon',
158: 'toy terrier',
159: 'Rhodesian ridgeback',
160: 'Afghan hound, Afghan',
161: 'basset, basset hound',
162: 'beagle',
163: 'bloodhound, sleuthhound',
164: 'bluetick',
165: 'black-and-tan coonhound',
166: 'Walker hound, Walker foxhound',
167: 'English foxhound',
168: 'redbone',
169: 'borzoi, Russian wolfhound',
170: 'Irish wolfhound',
171: 'Italian greyhound',
172: 'whippet',
173: 'Ibizan hound, Ibizan Podenco',
174: 'Norwegian elkhound, elkhound',
175: 'otterhound, otter hound',
176: 'Saluki, gazelle hound',
177: 'Scottish deerhound, deerhound',
178: 'Weimaraner',
179: 'Staffordshire bullterrier, Staffordshire bull terrier',
180: 'American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier',
181: 'Bedlington terrier',
182: 'Border terrier',
183: 'Kerry blue terrier',
184: 'Irish terrier',
185: 'Norfolk terrier',
186: 'Norwich terrier',
187: 'Yorkshire terrier',
188: 'wire-haired fox terrier',
189: 'Lakeland terrier',
190: 'Sealyham terrier, Sealyham',
191: 'Airedale, Airedale terrier',
192: 'cairn, cairn terrier',
193: 'Australian terrier',
194: 'Dandie Dinmont, Dandie Dinmont terrier',
195: 'Boston bull, Boston terrier',
196: 'miniature schnauzer',
197: 'giant schnauzer',
198: 'standard schnauzer',
199: 'Scotch terrier, Scottish terrier, Scottie',
200: 'Tibetan terrier, chrysanthemum dog',
201: 'silky terrier, Sydney silky',
202: 'soft-coated wheaten terrier',
203: 'West Highland white terrier',
204: 'Lhasa, Lhasa apso',
205: 'flat-coated retriever',
206: 'curly-coated retriever',
207: 'golden retriever',
208: 'Labrador retriever',
209: 'Chesapeake Bay retriever',
210: 'German short-haired pointer',
211: 'vizsla, Hungarian pointer',
212: 'English setter',
213: 'Irish setter, red setter',
214: 'Gordon setter',
215: 'Brittany spaniel',
216: 'clumber, clumber spaniel',
217: 'English springer, English springer spaniel',
218: 'Welsh springer spaniel',
219: 'cocker spaniel, English cocker spaniel, cocker',
220: 'Sussex spaniel',
221: 'Irish water spaniel',
222: 'kuvasz',
223: 'schipperke',
224: 'groenendael',
225: 'malinois',
226: 'briard',
227: 'kelpie',
228: 'komondor',
229: 'Old English sheepdog, bobtail',
230: 'Shetland sheepdog, Shetland sheep dog, Shetland',
231: 'collie',
232: 'Border collie',
233: 'Bouvier des Flandres, Bouviers des Flandres',
234: 'Rottweiler',
235: 'German shepherd, German shepherd dog, German police dog, alsatian',
236: 'Doberman, Doberman pinscher',
237: 'miniature pinscher',
238: 'Greater Swiss Mountain dog',
239: 'Bernese mountain dog',
240: 'Appenzeller',
241: 'EntleBucher',
242: 'boxer',
243: 'bull mastiff',
244: 'Tibetan mastiff',
245: 'French bulldog',
246: 'Great Dane',
247: 'Saint Bernard, St Bernard',
248: 'Eskimo dog, husky',
249: 'malamute, malemute, Alaskan malamute',
250: 'Siberian husky',
251: 'dalmatian, coach dog, carriage dog',
252: 'affenpinscher, monkey pinscher, monkey dog',
253: 'basenji',
254: 'pug, pug-dog',
255: 'Leonberg',
256: 'Newfoundland, Newfoundland dog',
257: 'Great Pyrenees',
258: 'Samoyed, Samoyede',
259: 'Pomeranian',
260: 'chow, chow chow',
261: 'keeshond',
262: 'Brabancon griffon',
263: 'Pembroke, Pembroke Welsh corgi',
264: 'Cardigan, Cardigan Welsh corgi',
265: 'toy poodle',
266: 'miniature poodle',
267: 'standard poodle',
268: 'Mexican hairless',
269: 'timber wolf, grey wolf, gray wolf, Canis lupus',
270: 'white wolf, Arctic wolf, Canis lupus tundrarum',
271: 'red wolf, maned wolf, Canis rufus, Canis niger',
272: 'coyote, prairie wolf, brush wolf, Canis latrans',
273: 'dingo, warrigal, warragal, Canis dingo',
274: 'dhole, Cuon alpinus',
275: 'African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus',
276: 'hyena, hyaena',
277: 'red fox, Vulpes vulpes',
278: 'kit fox, Vulpes macrotis',
279: 'Arctic fox, white fox, Alopex lagopus',
280: 'grey fox, gray fox, Urocyon cinereoargenteus',
281: 'tabby, tabby cat',
282: 'tiger cat',
283: 'Persian cat',
284: 'Siamese cat, Siamese',
285: 'Egyptian cat',
286: 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor',
287: 'lynx, catamount',
288: 'leopard, Panthera pardus',
289: 'snow leopard, ounce, Panthera uncia',
290: 'jaguar, panther, Panthera onca, Felis onca',
291: 'lion, king of beasts, Panthera leo',
292: 'tiger, Panthera tigris',
293: 'cheetah, chetah, Acinonyx jubatus',
294: 'brown bear, bruin, Ursus arctos',
295: 'American black bear, black bear, Ursus americanus, Euarctos americanus',
296: 'ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus',
297: 'sloth bear, Melursus ursinus, Ursus ursinus',
298: 'mongoose',
299: 'meerkat, mierkat',
300: 'tiger beetle',
301: 'ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle',
302: 'ground beetle, carabid beetle',
303: 'long-horned beetle, longicorn, longicorn beetle',
304: 'leaf beetle, chrysomelid',
305: 'dung beetle',
306: 'rhinoceros beetle',
307: 'weevil',
308: 'fly',
309: 'bee',
310: 'ant, emmet, pismire',
311: 'grasshopper, hopper',
312: 'cricket',
313: 'walking stick, walkingstick, stick insect',
314: 'cockroach, roach',
315: 'mantis, mantid',
316: 'cicada, cicala',
317: 'leafhopper',
318: 'lacewing, lacewing fly',
319: "dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk",
320: 'damselfly',
321: 'admiral',
322: 'ringlet, ringlet butterfly',
323: 'monarch, monarch butterfly, milkweed butterfly, Danaus plexippus',
324: 'cabbage butterfly',
325: 'sulphur butterfly, sulfur butterfly',
326: 'lycaenid, lycaenid butterfly',
327: 'starfish, sea star',
328: 'sea urchin',
329: 'sea cucumber, holothurian',
330: 'wood rabbit, cottontail, cottontail rabbit',
331: 'hare',
332: 'Angora, Angora rabbit',
333: 'hamster',
334: 'porcupine, hedgehog',
335: 'fox squirrel, eastern fox squirrel, Sciurus niger',
336: 'marmot',
337: 'beaver',
338: 'guinea pig, Cavia cobaya',
339: 'sorrel',
340: 'zebra',
341: 'hog, pig, grunter, squealer, Sus scrofa',
342: 'wild boar, boar, Sus scrofa',
343: 'warthog',
344: 'hippopotamus, hippo, river horse, Hippopotamus amphibius',
345: 'ox',
346: 'water buffalo, water ox, Asiatic buffalo, Bubalus bubalis',
347: 'bison',
348: 'ram, tup',
349: 'bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis',
350: 'ibex, Capra ibex',
351: 'hartebeest',
352: 'impala, Aepyceros melampus',
353: 'gazelle',
354: 'Arabian camel, dromedary, Camelus dromedarius',
355: 'llama',
356: 'weasel',
357: 'mink',
358: 'polecat, fitch, foulmart, foumart, Mustela putorius',
359: 'black-footed ferret, ferret, Mustela nigripes',
360: 'otter',
361: 'skunk, polecat, wood pussy',
362: 'badger',
363: 'armadillo',
364: 'three-toed sloth, ai, Bradypus tridactylus',
365: 'orangutan, orang, orangutang, Pongo pygmaeus',
366: 'gorilla, Gorilla gorilla',
367: 'chimpanzee, chimp, Pan troglodytes',
368: 'gibbon, Hylobates lar',
369: 'siamang, Hylobates syndactylus, Symphalangus syndactylus',
370: 'guenon, guenon monkey',
371: 'patas, hussar monkey, Erythrocebus patas',
372: 'baboon',
373: 'macaque',
374: 'langur',
375: 'colobus, colobus monkey',
376: 'proboscis monkey, Nasalis larvatus',
377: 'marmoset',
378: 'capuchin, ringtail, Cebus capucinus',
379: 'howler monkey, howler',
380: 'titi, titi monkey',
381: 'spider monkey, Ateles geoffroyi',
382: 'squirrel monkey, Saimiri sciureus',
383: 'Madagascar cat, ring-tailed lemur, Lemur catta',
384: 'indri, indris, Indri indri, Indri brevicaudatus',
385: 'Indian elephant, Elephas maximus',
386: 'African elephant, Loxodonta africana',
387: 'lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens',
388: 'giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca',
389: 'barracouta, snoek',
390: 'eel',
391: 'coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch',
392: 'rock beauty, Holocanthus tricolor',
393: 'anemone fish',
394: 'sturgeon',
395: 'gar, garfish, garpike, billfish, Lepisosteus osseus',
396: 'lionfish',
397: 'puffer, pufferfish, blowfish, globefish',
398: 'abacus',
399: 'abaya',
400: "academic gown, academic robe, judge's robe",
401: 'accordion, piano accordion, squeeze box',
402: 'acoustic guitar',
403: 'aircraft carrier, carrier, flattop, attack aircraft carrier',
404: 'airliner',
405: 'airship, dirigible',
406: 'altar',
407: 'ambulance',
408: 'amphibian, amphibious vehicle',
409: 'analog clock',
410: 'apiary, bee house',
411: 'apron',
412: 'ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin',
413: 'assault rifle, assault gun',
414: 'backpack, back pack, knapsack, packsack, rucksack, haversack',
415: 'bakery, bakeshop, bakehouse',
416: 'balance beam, beam',
417: 'balloon',
418: 'ballpoint, ballpoint pen, ballpen, Biro',
419: 'Band Aid',
420: 'banjo',
421: 'bannister, banister, balustrade, balusters, handrail',
422: 'barbell',
423: 'barber chair',
424: 'barbershop',
425: 'barn',
426: 'barometer',
427: 'barrel, cask',
428: 'barrow, garden cart, lawn cart, wheelbarrow',
429: 'baseball',
430: 'basketball',
431: 'bassinet',
432: 'bassoon',
433: 'bathing cap, swimming cap',
434: 'bath towel',
435: 'bathtub, bathing tub, bath, tub',
436: 'beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon',
437: 'beacon, lighthouse, beacon light, pharos',
438: 'beaker',
439: 'bearskin, busby, shako',
440: 'beer bottle',
441: 'beer glass',
442: 'bell cote, bell cot',
443: 'bib',
444: 'bicycle-built-for-two, tandem bicycle, tandem',
445: 'bikini, two-piece',
446: 'binder, ring-binder',
447: 'binoculars, field glasses, opera glasses',
448: 'birdhouse',
449: 'boathouse',
450: 'bobsled, bobsleigh, bob',
451: 'bolo tie, bolo, bola tie, bola',
452: 'bonnet, poke bonnet',
453: 'bookcase',
454: 'bookshop, bookstore, bookstall',
455: 'bottlecap',
456: 'bow',
457: 'bow tie, bow-tie, bowtie',
458: 'brass, memorial tablet, plaque',
459: 'brassiere, bra, bandeau',
460: 'breakwater, groin, groyne, mole, bulwark, seawall, jetty',
461: 'breastplate, aegis, egis',
462: 'broom',
463: 'bucket, pail',
464: 'buckle',
465: 'bulletproof vest',
466: 'bullet train, bullet',
467: 'butcher shop, meat market',
468: 'cab, hack, taxi, taxicab',
469: 'caldron, cauldron',
470: 'candle, taper, wax light',
471: 'cannon',
472: 'canoe',
473: 'can opener, tin opener',
474: 'cardigan',
475: 'car mirror',
476: 'carousel, carrousel, merry-go-round, roundabout, whirligig',
477: "carpenter's kit, tool kit",
478: 'carton',
479: 'car wheel',
480: 'cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM',
481: 'cassette',
482: 'cassette player',
483: 'castle',
484: 'catamaran',
485: 'CD player',
486: 'cello, violoncello',
487: 'cellular telephone, cellular phone, cellphone, cell, mobile phone',
488: 'chain',
489: 'chainlink fence',
490: 'chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour',
491: 'chain saw, chainsaw',
492: 'chest',
493: 'chiffonier, commode',
494: 'chime, bell, gong',
495: 'china cabinet, china closet',
496: 'Christmas stocking',
497: 'church, church building',
498: 'cinema, movie theater, movie theatre, movie house, picture palace',
499: 'cleaver, meat cleaver, chopper',
500: 'cliff dwelling',
501: 'cloak',
502: 'clog, geta, patten, sabot',
503: 'cocktail shaker',
504: 'coffee mug',
505: 'coffeepot',
506: 'coil, spiral, volute, whorl, helix',
507: 'combination lock',
508: 'computer keyboard, keypad',
509: 'confectionery, confectionary, candy store',
510: 'container ship, containership, container vessel',
511: 'convertible',
512: 'corkscrew, bottle screw',
513: 'cornet, horn, trumpet, trump',
514: 'cowboy boot',
515: 'cowboy hat, ten-gallon hat',
516: 'cradle',
517: 'crane',
518: 'crash helmet',
519: 'crate',
520: 'crib, cot',
521: 'Crock Pot',
522: 'croquet ball',
523: 'crutch',
524: 'cuirass',
525: 'dam, dike, dyke',
526: 'desk',
527: 'desktop computer',
528: 'dial telephone, dial phone',
529: 'diaper, nappy, napkin',
530: 'digital clock',
531: 'digital watch',
532: 'dining table, board',
533: 'dishrag, dishcloth',
534: 'dishwasher, dish washer, dishwashing machine',
535: 'disk brake, disc brake',
536: 'dock, dockage, docking facility',
537: 'dogsled, dog sled, dog sleigh',
538: 'dome',
539: 'doormat, welcome mat',
540: 'drilling platform, offshore rig',
541: 'drum, membranophone, tympan',
542: 'drumstick',
543: 'dumbbell',
544: 'Dutch oven',
545: 'electric fan, blower',
546: 'electric guitar',
547: 'electric locomotive',
548: 'entertainment center',
549: 'envelope',
550: 'espresso maker',
551: 'face powder',
552: 'feather boa, boa',
553: 'file, file cabinet, filing cabinet',
554: 'fireboat',
555: 'fire engine, fire truck',
556: 'fire screen, fireguard',
557: 'flagpole, flagstaff',
558: 'flute, transverse flute',
559: 'folding chair',
560: 'football helmet',
561: 'forklift',
562: 'fountain',
563: 'fountain pen',
564: 'four-poster',
565: 'freight car',
566: 'French horn, horn',
567: 'frying pan, frypan, skillet',
568: 'fur coat',
569: 'garbage truck, dustcart',
570: 'gasmask, respirator, gas helmet',
571: 'gas pump, gasoline pump, petrol pump, island dispenser',
572: 'goblet',
573: 'go-kart',
574: 'golf ball',
575: 'golfcart, golf cart',
576: 'gondola',
577: 'gong, tam-tam',
578: 'gown',
579: 'grand piano, grand',
580: 'greenhouse, nursery, glasshouse',
581: 'grille, radiator grille',
582: 'grocery store, grocery, food market, market',
583: 'guillotine',
584: 'hair slide',
585: 'hair spray',
586: 'half track',
587: 'hammer',
588: 'hamper',
589: 'hand blower, blow dryer, blow drier, hair dryer, hair drier',
590: 'hand-held computer, hand-held microcomputer',
591: 'handkerchief, hankie, hanky, hankey',
592: 'hard disc, hard disk, fixed disk',
593: 'harmonica, mouth organ, harp, mouth harp',
594: 'harp',
595: 'harvester, reaper',
596: 'hatchet',
597: 'holster',
598: 'home theater, home theatre',
599: 'honeycomb',
600: 'hook, claw',
601: 'hoopskirt, crinoline',
602: 'horizontal bar, high bar',
603: 'horse cart, horse-cart',
604: 'hourglass',
605: 'iPod',
606: 'iron, smoothing iron',
607: "jack-o'-lantern",
608: 'jean, blue jean, denim',
609: 'jeep, landrover',
610: 'jersey, T-shirt, tee shirt',
611: 'jigsaw puzzle',
612: 'jinrikisha, ricksha, rickshaw',
613: 'joystick',
614: 'kimono',
615: 'knee pad',
616: 'knot',
617: 'lab coat, laboratory coat',
618: 'ladle',
619: 'lampshade, lamp shade',
620: 'laptop, laptop computer',
621: 'lawn mower, mower',
622: 'lens cap, lens cover',
623: 'letter opener, paper knife, paperknife',
624: 'library',
625: 'lifeboat',
626: 'lighter, light, igniter, ignitor',
627: 'limousine, limo',
628: 'liner, ocean liner',
629: 'lipstick, lip rouge',
630: 'Loafer',
631: 'lotion',
632: 'loudspeaker, speaker, speaker unit, loudspeaker system, speaker system',
633: "loupe, jeweler's loupe",
634: 'lumbermill, sawmill',
635: 'magnetic compass',
636: 'mailbag, postbag',
637: 'mailbox, letter box',
638: 'maillot',
639: 'maillot, tank suit',
640: 'manhole cover',
641: 'maraca',
642: 'marimba, xylophone',
643: 'mask',
644: 'matchstick',
645: 'maypole',
646: 'maze, labyrinth',
647: 'measuring cup',
648: 'medicine chest, medicine cabinet',
649: 'megalith, megalithic structure',
650: 'microphone, mike',
651: 'microwave, microwave oven',
652: 'military uniform',
653: 'milk can',
654: 'minibus',
655: 'miniskirt, mini',
656: 'minivan',
657: 'missile',
658: 'mitten',
659: 'mixing bowl',
660: 'mobile home, manufactured home',
661: 'Model T',
662: 'modem',
663: 'monastery',
664: 'monitor',
665: 'moped',
666: 'mortar',
667: 'mortarboard',
668: 'mosque',
669: 'mosquito net',
670: 'motor scooter, scooter',
671: 'mountain bike, all-terrain bike, off-roader',
672: 'mountain tent',
673: 'mouse, computer mouse',
674: 'mousetrap',
675: 'moving van',
676: 'muzzle',
677: 'nail',
678: 'neck brace',
679: 'necklace',
680: 'nipple',
681: 'notebook, notebook computer',
682: 'obelisk',
683: 'oboe, hautboy, hautbois',
684: 'ocarina, sweet potato',
685: 'odometer, hodometer, mileometer, milometer',
686: 'oil filter',
687: 'organ, pipe organ',
688: 'oscilloscope, scope, cathode-ray oscilloscope, CRO',
689: 'overskirt',
690: 'oxcart',
691: 'oxygen mask',
692: 'packet',
693: 'paddle, boat paddle',
694: 'paddlewheel, paddle wheel',
695: 'padlock',
696: 'paintbrush',
697: "pajama, pyjama, pj's, jammies",
698: 'palace',
699: 'panpipe, pandean pipe, syrinx',
700: 'paper towel',
701: 'parachute, chute',
702: 'parallel bars, bars',
703: 'park bench',
704: 'parking meter',
705: 'passenger car, coach, carriage',
706: 'patio, terrace',
707: 'pay-phone, pay-station',
708: 'pedestal, plinth, footstall',
709: 'pencil box, pencil case',
710: 'pencil sharpener',
711: 'perfume, essence',
712: 'Petri dish',
713: 'photocopier',
714: 'pick, plectrum, plectron',
715: 'pickelhaube',
716: 'picket fence, paling',
717: 'pickup, pickup truck',
718: 'pier',
719: 'piggy bank, penny bank',
720: 'pill bottle',
721: 'pillow',
722: 'ping-pong ball',
723: 'pinwheel',
724: 'pirate, pirate ship',
725: 'pitcher, ewer',
726: "plane, carpenter's plane, woodworking plane",
727: 'planetarium',
728: 'plastic bag',
729: 'plate rack',
730: 'plow, plough',
731: "plunger, plumber's helper",
732: 'Polaroid camera, Polaroid Land camera',
733: 'pole',
734: 'police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria',
735: 'poncho',
736: 'pool table, billiard table, snooker table',
737: 'pop bottle, soda bottle',
738: 'pot, flowerpot',
739: "potter's wheel",
740: 'power drill',
741: 'prayer rug, prayer mat',
742: 'printer',
743: 'prison, prison house',
744: 'projectile, missile',
745: 'projector',
746: 'puck, hockey puck',
747: 'punching bag, punch bag, punching ball, punchball',
748: 'purse',
749: 'quill, quill pen',
750: 'quilt, comforter, comfort, puff',
751: 'racer, race car, racing car',
752: 'racket, racquet',
753: 'radiator',
754: 'radio, wireless',
755: 'radio telescope, radio reflector',
756: 'rain barrel',
757: 'recreational vehicle, RV, R.V.',
758: 'reel',
759: 'reflex camera',
760: 'refrigerator, icebox',
761: 'remote control, remote',
762: 'restaurant, eating house, eating place, eatery',
763: 'revolver, six-gun, six-shooter',
764: 'rifle',
765: 'rocking chair, rocker',
766: 'rotisserie',
767: 'rubber eraser, rubber, pencil eraser',
768: 'rugby ball',
769: 'rule, ruler',
770: 'running shoe',
771: 'safe',
772: 'safety pin',
773: 'saltshaker, salt shaker',
774: 'sandal',
775: 'sarong',
776: 'sax, saxophone',
777: 'scabbard',
778: 'scale, weighing machine',
779: 'school bus',
780: 'schooner',
781: 'scoreboard',
782: 'screen, CRT screen',
783: 'screw',
784: 'screwdriver',
785: 'seat belt, seatbelt',
786: 'sewing machine',
787: 'shield, buckler',
788: 'shoe shop, shoe-shop, shoe store',
789: 'shoji',
790: 'shopping basket',
791: 'shopping cart',
792: 'shovel',
793: 'shower cap',
794: 'shower curtain',
795: 'ski',
796: 'ski mask',
797: 'sleeping bag',
798: 'slide rule, slipstick',
799: 'sliding door',
800: 'slot, one-armed bandit',
801: 'snorkel',
802: 'snowmobile',
803: 'snowplow, snowplough',
804: 'soap dispenser',
805: 'soccer ball',
806: 'sock',
807: 'solar dish, solar collector, solar furnace',
808: 'sombrero',
809: 'soup bowl',
810: 'space bar',
811: 'space heater',
812: 'space shuttle',
813: 'spatula',
814: 'speedboat',
815: "spider web, spider's web",
816: 'spindle',
817: 'sports car, sport car',
818: 'spotlight, spot',
819: 'stage',
820: 'steam locomotive',
821: 'steel arch bridge',
822: 'steel drum',
823: 'stethoscope',
824: 'stole',
825: 'stone wall',
826: 'stopwatch, stop watch',
827: 'stove',
828: 'strainer',
829: 'streetcar, tram, tramcar, trolley, trolley car',
830: 'stretcher',
831: 'studio couch, day bed',
832: 'stupa, tope',
833: 'submarine, pigboat, sub, U-boat',
834: 'suit, suit of clothes',
835: 'sundial',
836: 'sunglass',
837: 'sunglasses, dark glasses, shades',
838: 'sunscreen, sunblock, sun blocker',
839: 'suspension bridge',
840: 'swab, swob, mop',
841: 'sweatshirt',
842: 'swimming trunks, bathing trunks',
843: 'swing',
844: 'switch, electric switch, electrical switch',
845: 'syringe',
846: 'table lamp',
847: 'tank, army tank, armored combat vehicle, armoured combat vehicle',
848: 'tape player',
849: 'teapot',
850: 'teddy, teddy bear',
851: 'television, television system',
852: 'tennis ball',
853: 'thatch, thatched roof',
854: 'theater curtain, theatre curtain',
855: 'thimble',
856: 'thresher, thrasher, threshing machine',
857: 'throne',
858: 'tile roof',
859: 'toaster',
860: 'tobacco shop, tobacconist shop, tobacconist',
861: 'toilet seat',
862: 'torch',
863: 'totem pole',
864: 'tow truck, tow car, wrecker',
865: 'toyshop',
866: 'tractor',
867: 'trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi',
868: 'tray',
869: 'trench coat',
870: 'tricycle, trike, velocipede',
871: 'trimaran',
872: 'tripod',
873: 'triumphal arch',
874: 'trolleybus, trolley coach, trackless trolley',
875: 'trombone',
876: 'tub, vat',
877: 'turnstile',
878: 'typewriter keyboard',
879: 'umbrella',
880: 'unicycle, monocycle',
881: 'upright, upright piano',
882: 'vacuum, vacuum cleaner',
883: 'vase',
884: 'vault',
885: 'velvet',
886: 'vending machine',
887: 'vestment',
888: 'viaduct',
889: 'violin, fiddle',
890: 'volleyball',
891: 'waffle iron',
892: 'wall clock',
893: 'wallet, billfold, notecase, pocketbook',
894: 'wardrobe, closet, press',
895: 'warplane, military plane',
896: 'washbasin, handbasin, washbowl, lavabo, wash-hand basin',
897: 'washer, automatic washer, washing machine',
898: 'water bottle',
899: 'water jug',
900: 'water tower',
901: 'whiskey jug',
902: 'whistle',
903: 'wig',
904: 'window screen',
905: 'window shade',
906: 'Windsor tie',
907: 'wine bottle',
908: 'wing',
909: 'wok',
910: 'wooden spoon',
911: 'wool, woolen, woollen',
912: 'worm fence, snake fence, snake-rail fence, Virginia fence',
913: 'wreck',
914: 'yawl',
915: 'yurt',
916: 'web site, website, internet site, site',
917: 'comic book',
918: 'crossword puzzle, crossword',
919: 'street sign',
920: 'traffic light, traffic signal, stoplight',
921: 'book jacket, dust cover, dust jacket, dust wrapper',
922: 'menu',
923: 'plate',
924: 'guacamole',
925: 'consomme',
926: 'hot pot, hotpot',
927: 'trifle',
928: 'ice cream, icecream',
929: 'ice lolly, lolly, lollipop, popsicle',
930: 'French loaf',
931: 'bagel, beigel',
932: 'pretzel',
933: 'cheeseburger',
934: 'hotdog, hot dog, red hot',
935: 'mashed potato',
936: 'head cabbage',
937: 'broccoli',
938: 'cauliflower',
939: 'zucchini, courgette',
940: 'spaghetti squash',
941: 'acorn squash',
942: 'butternut squash',
943: 'cucumber, cuke',
944: 'artichoke, globe artichoke',
945: 'bell pepper',
946: 'cardoon',
947: 'mushroom',
948: 'Granny Smith',
949: 'strawberry',
950: 'orange',
951: 'lemon',
952: 'fig',
953: 'pineapple, ananas',
954: 'banana',
955: 'jackfruit, jak, jack',
956: 'custard apple',
957: 'pomegranate',
958: 'hay',
959: 'carbonara',
960: 'chocolate sauce, chocolate syrup',
961: 'dough',
962: 'meat loaf, meatloaf',
963: 'pizza, pizza pie',
964: 'potpie',
965: 'burrito',
966: 'red wine',
967: 'espresso',
968: 'cup',
969: 'eggnog',
970: 'alp',
971: 'bubble',
972: 'cliff, drop, drop-off',
973: 'coral reef',
974: 'geyser',
975: 'lakeside, lakeshore',
976: 'promontory, headland, head, foreland',
977: 'sandbar, sand bar',
978: 'seashore, coast, seacoast, sea-coast',
979: 'valley, vale',
980: 'volcano',
981: 'ballplayer, baseball player',
982: 'groom, bridegroom',
983: 'scuba diver',
984: 'rapeseed',
985: 'daisy',
986: "yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum",
987: 'corn',
988: 'acorn',
989: 'hip, rose hip, rosehip',
990: 'buckeye, horse chestnut, conker',
991: 'coral fungus',
992: 'agaric',
993: 'gyromitra',
994: 'stinkhorn, carrion fungus',
995: 'earthstar',
996: 'hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa',
997: 'bolete',
998: 'ear, spike, capitulum',
999: 'toilet tissue, toilet paper, bathroom tissue'}
因为 它太大了无法显示 source diff 。你可以改为 查看blob
{
"ops": [
{
"attrs": {
"Scale_in": 1.0,
"Scale_in_eltwise": 1.0,
"Scale_out": 1.0,
"Scale_weights": [
1.0
],
"data_format": "AnyLayout",
"dilations": [
1,
1
],
"exhaustive_search": false,
"force_fp32_output": false,
"fuse_relu": false,
"fuse_relu_before_depthwise_conv": false,
"fuse_residual_connection": false,
"groups": 2,
"is_test": 1,
"paddings": [
0,
0
],
"strides": [
1,
1
],
"use_cudnn": true,
"use_mkldnn": false,
"workspace_size_MB": 4096
},
"inputs": {
"Filter": [
"conv2d_0.w_0"
],
"Input": [
"pixel"
]
},
"outputs": {
"Output": [
"conv2d_0.tmp_0"
]
},
"type": "conv2d"
}
],
"vars": [
{
"data": [
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0
],
"name": "pixel",
"persistable": 0,
"shape": [
1,
8,
3,
3
]
},
{
"data": [
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 1, 0, 1,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2,
0, 2, 0, 2
],
"name": "conv2d_0.w_0",
"persistable": 1,
"shape": [
4,
4,
2,
2
]
},
{
"data": [
],
"name": "conv2d_1.b_0",
"persistable": 1,
"shape": [
50
]
},
{
"data": [
4, 4, 4, 4,
8, 8, 8, 8,
16, 16, 16, 16,
16, 16, 16, 16
],
"name": "conv2d_0.tmp_0",
"persistable": 0,
"shape": [
1,
4,
2,
2
]
},
]
}
因为 它太大了无法显示 source diff 。你可以改为 查看blob
{
"ops": [
{
"attrs": {
"axis": 1,
"use_mkldnn": false,
"x_data_format": "",
"y_data_format": ""
},
"inputs": {
"X": [
"fc_0.tmp_0"
],
"Y": [
"fc7_offset"
]
},
"outputs": {
"Out": [
"fc_0.tmp_1"
]
},
"type": "elementwise_add"
}
],
"vars": [
{
"data": [
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 1, 0, 1, 0, 1, 0, 1, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0,
0, 2, 0, 2, 0, 2, 0, 2, 0
],
"name": "pixel",
"persistable": 0,
"shape": [
1,
8,
3,
3
]
},
{
"data": [
-1.1098297834396362,
6.280017375946045,
3.1823835372924805,
1.9810107946395874,
0.03745591640472412,
2.6181418895721436,
2.867142915725708,
2.11924409866333,
-0.6121698617935181,
-4.319775581359863,
-5.5695600509643555,
-3.0855345726013184,
0.2046980857849121,
-2.9285874366760254,
-4.034234046936035,
-0.3219590187072754,
-3.8337182998657227,
-3.458463668823242,
-1.8676337003707886,
-2.8824174404144287,
-3.224912166595459,
2.8730430603027344,
1.17366361618042,
0.7122759819030762,
-2.003032922744751,
-0.08305394649505615,
1.0322399139404297,
-0.13402244448661804,
-1.4503525495529175,
0.9064493179321289,
1.312484860420227,
-0.5213003158569336,
2.973198890686035,
2.2515311241149902,
4.331067085266113,
0.39521080255508423,
-0.024464011192321777,
-2.817532777786255,
-1.181924819946289,
-1.9536917209625244,
-1.3022257089614868,
-3.0054824352264404,
1.0263299942016602,
2.1801626682281494,
-2.5572702884674072,
-1.9350857734680176,
-1.5212739706039429,
-3.0372211933135986,
-3.9655723571777344,
-3.16747784614563,
0.9443843960762024,
-2.5688347816467285,
-3.845409631729126,
-3.5706634521484375,
0.07929372787475586,
-1.7236900329589844,
-2.5290720462799072,
-2.59753155708313,
-1.938873529434204,
0.13098883628845215,
0.8310225009918213,
-4.163984775543213,
-2.2919321060180664,
-2.2529170513153076,
-0.32626527547836304,
-1.6464781761169434,
-0.8053542971611023,
-0.43675923347473145,
-1.8472626209259033,
-1.5393996238708496,
-1.3766282796859741,
-2.5448594093322754,
-1.8978112936019897,
2.9039812088012695,
1.774146318435669,
-0.513042688369751,
1.1454157829284668,
1.4261561632156372,
1.5273460149765015,
-0.7735292911529541,
1.6160634756088257,
0.7888234853744507,
1.1879230737686157,
-0.7824995517730713,
-4.992694854736328,
-1.5696773529052734,
-0.7463071346282959,
-2.967804431915283,
-1.9331011772155762,
-4.363243579864502,
-1.9011057615280151,
-3.65684175491333,
-4.679007530212402,
-2.854567527770996,
-0.7942641377449036,
-4.447449684143066,
-1.8494857549667358,
-0.6775758266448975,
-3.124417543411255,
-1.0919077396392822,
-1.204681634902954,
2.697819471359253,
-4.28972864151001,
-1.4630482196807861,
-1.6940839290618896,
-4.467775821685791,
1.658867359161377,
5.264161109924316,
-0.23039180040359497,
-2.0056653022766113,
2.4297993183135986,
3.8325250148773193,
6.236888408660889,
1.081353783607483,
0.9114763140678406,
3.819485902786255,
-0.8213856220245361,
2.6917107105255127,
3.1594784259796143,
3.2505340576171875,
-1.599015474319458,
5.865414619445801,
3.3848185539245605,
1.0470486879348755,
1.7181504964828491,
5.232596397399902,
2.4393012523651123,
-0.6650027632713318,
-2.698718547821045,
-3.7027933597564697,
-1.0648775100708008,
-4.57002592086792,
-1.3015716075897217,
-4.141479969024658,
-3.543605327606201,
0.11356914043426514,
-4.142419815063477,
-3.0896196365356445,
-5.248664379119873,
-1.0557355880737305,
-5.700218677520752,
-3.210575819015503,
-6.002849578857422,
-1.5150558948516846,
0.7668859958648682,
2.0850210189819336,
-1.9190276861190796,
7.063694953918457,
2.1589503288269043,
-2.5693466663360596,
-0.41036903858184814,
0.27354103326797485,
-4.041271686553955,
-1.8141188621520996,
-0.9877132773399353,
-1.400024175643921,
-2.7775607109069824,
-2.2304954528808594,
-3.7750062942504883,
-2.6431808471679688,
-1.1961359977722168,
-0.8919503688812256,
-2.6909024715423584,
-0.6629705429077148,
-1.7510700225830078,
-0.8857673406600952,
-3.2500250339508057,
-2.1082746982574463,
0.2042170763015747,
-2.210299253463745,
0.7864104509353638,
-2.9751083850860596,
-2.2737724781036377,
-0.68779057264328,
-0.9036482572555542,
-0.7623353600502014,
-3.5691213607788086,
-0.9564109444618225,
-1.3931095600128174,
-2.2496964931488037,
-3.593845844268799,
-2.067422866821289,
-0.5507739782333374,
2.6511547565460205,
3.190521717071533,
-0.4711952805519104,
-0.44052132964134216,
0.020955059677362442,
2.9489078521728516,
0.2345447540283203,
-1.57606041431427,
2.722463369369507,
-1.085034966468811,
-2.1278340816497803,
-4.472021102905273,
-0.15057799220085144,
1.023224949836731,
0.1553490161895752,
-0.8380561470985413,
2.7073187828063965,
-1.1645872592926025,
-1.3870041370391846,
-0.19245240092277527,
1.5917038917541504,
-1.8875302076339722,
-2.0529909133911133,
-2.716744899749756,
0.7809892892837524,
-2.2398364543914795,
-1.214713454246521,
-3.069598913192749,
0.19325768947601318,
2.2853477001190186,
3.8020496368408203,
0.9614565968513489,
0.25733819603919983,
-2.749157667160034,
0.5181249380111694,
-0.05282244086265564,
2.6641454696655273,
0.4792838394641876,
-0.8193203806877136,
-1.7853703498840332,
1.2008960247039795,
2.9270849227905273,
-3.4362072944641113,
-0.9281041622161865,
-2.711972713470459,
-0.30203473567962646,
-1.243424892425537,
0.21164435148239136,
0.25878894329071045,
-0.3724523186683655,
1.21412193775177,
-0.8826887607574463,
-0.25927621126174927,
-1.2882156372070312,
-0.7579304575920105,
-2.3151230812072754,
-1.9493675231933594,
1.0950922966003418,
-0.9096841812133789,
-0.6080835461616516,
-4.516273021697998,
-2.077496290206909,
-0.13329768180847168,
-2.554391860961914,
-0.882907509803772,
-1.4816160202026367,
-0.8138746023178101,
0.4209463894367218,
2.1191864013671875,
-0.5152456760406494,
-1.3701984882354736,
-1.842582106590271,
-3.198296070098877,
-0.5327607989311218,
-2.23941707611084,
2.802278518676758,
1.1445939540863037,
-0.10909640789031982,
-2.1707987785339355,
-0.6605309844017029,
-1.702032208442688,
-1.3742380142211914,
0.30779576301574707,
-1.527796745300293,
2.5908055305480957,
-5.370712757110596,
3.1592442989349365,
1.8471250534057617,
1.4450740814208984,
-0.29365819692611694,
2.8080296516418457,
0.7826064229011536,
2.24487566947937,
3.8284924030303955,
2.0590174198150635,
-3.0601096153259277,
-0.38943415880203247,
-0.9199885129928589,
-2.6166539192199707,
-3.7082812786102295,
1.6603496074676514,
-1.9530476331710815,
-2.1296348571777344,
1.4963228702545166,
-1.9633915424346924,
0.9424124956130981,
-2.3196699619293213,
-0.8016772270202637,
2.1566343307495117,
-4.999898910522461,
0.11684525012969971,
6.941814422607422,
2.546445608139038,
3.173893451690674,
0.08999282121658325,
-0.12652826309204102,
0.8835113048553467,
-6.410438060760498,
1.4145431518554688,
0.6318698525428772,
-1.1987061500549316,
-0.07767903804779053,
-4.531796455383301,
-0.8173074126243591,
-1.51220703125,
0.49932414293289185,
3.565516471862793,
2.5288636684417725,
-1.4967541694641113,
-1.2811284065246582,
2.1081948280334473,
-1.1358236074447632,
0.49249017238616943,
-2.2904512882232666,
-1.4134225845336914,
0.013357375748455524,
0.6631985902786255,
0.8505830764770508,
1.5555975437164307,
-2.922717332839966,
-0.4823005199432373,
-1.6811696290969849,
-2.7099595069885254,
-4.608072280883789,
6.704110622406006,
2.128044366836548,
4.943448066711426,
-2.8732614517211914,
0.35023045539855957,
-2.2871432304382324,
-0.41411900520324707,
-3.4737284183502197,
0.8822903633117676,
2.4548470973968506,
0.2483443021774292,
-3.75382137298584,
4.36890983581543,
-1.286186933517456,
-1.3454530239105225,
-2.3936538696289062,
-2.380206823348999,
-0.6745333671569824,
1.6055960655212402,
-4.198836803436279,
5.09708309173584,
-1.8996615409851074,
-2.6783154010772705,
2.8310494422912598,
-1.8546035289764404,
-3.533179759979248,
-5.79323148727417,
4.695282459259033,
0.7224174737930298,
-1.5337331295013428,
-2.323596715927124,
-2.1259078979492188,
-1.7988808155059814,
-0.7696970701217651,
-1.3165106773376465,
-3.482513904571533,
-1.9235535860061646,
-3.8766250610351562,
2.8696720600128174,
-1.4360194206237793,
-0.8234670758247375,
-5.143311500549316,
-4.450238227844238,
-3.2954797744750977,
-2.9979262351989746,
0.6171916723251343,
-0.00595325231552124,
0.6727069616317749,
-4.503152370452881,
-2.3362483978271484,
-0.9406384229660034,
-0.6121606826782227,
-2.160066843032837,
0.6046799421310425,
0.2239534854888916,
-1.9791312217712402,
-5.341414451599121,
-0.08803188800811768,
1.6064965724945068,
0.20806407928466797,
-0.8675591945648193,
-4.5164008140563965,
3.120645046234131,
1.309441089630127,
-1.250939130783081,
-0.5207388997077942,
-0.7241864800453186,
-0.25348925590515137,
0.2392439842224121,
0.544073224067688,
-0.37482893466949463,
-1.4554963111877441,
0.3761484622955322,
1.5785998106002808,
0.834793210029602,
1.4881293773651123,
0.8964934349060059,
1.2715522050857544,
3.930844783782959,
1.4107838869094849,
2.465442180633545,
-3.588897228240967,
3.716876745223999,
-0.22951894998550415,
-4.336287021636963,
-0.7980577349662781,
-1.0871174335479736,
-2.829066276550293,
-1.2431702613830566,
-2.1182312965393066,
5.274393558502197,
2.6847620010375977,
-0.17691034078598022,
2.0382988452911377,
4.685642719268799,
-1.648077368736267,
-6.088254451751709,
-2.4805350303649902,
5.693214416503906,
2.1471195220947266,
2.6805875301361084,
-1.257446527481079,
-1.9631949663162231,
-4.690670967102051,
-0.9372278451919556,
3.6071414947509766,
1.5920652151107788,
-0.5450392365455627,
1.9293763637542725,
-3.0089166164398193,
8.61243724822998,
0.8929249048233032,
1.8419400453567505,
2.788212776184082,
3.637413263320923,
5.870749473571777,
-5.372323036193848,
-0.24803829193115234,
0.10370641946792603,
-3.5142319202423096,
4.495314121246338,
2.1045520305633545,
2.0311503410339355,
-5.7489423751831055,
0.6904568076133728,
-0.2398514747619629,
-1.1769464015960693,
-2.284090995788574,
-0.25422826409339905,
-0.18415647745132446,
1.0443592071533203,
0.6887814402580261,
-0.009091198444366455,
4.3580169677734375,
-0.14628857374191284,
-2.0272841453552246,
0.4465930759906769,
1.2870067358016968,
-2.3178417682647705,
-1.5118120908737183,
-0.33232688903808594,
1.9783192873001099,
6.8699846267700195,
6.672363758087158,
5.466246604919434,
1.4994380474090576,
-5.813544273376465,
-1.6810972690582275,
5.7172627449035645,
4.691410064697266,
-6.627619743347168,
-4.731492042541504,
-3.009411334991455,
-0.7301946878433228,
-3.7846250534057617,
-4.3645524978637695,
3.143440008163452,
-1.224428653717041,
-1.9145143032073975,
-0.1480833888053894,
-2.4886786937713623,
5.607964515686035,
3.4411098957061768,
1.11717689037323,
1.888771653175354,
-0.7449076175689697,
-2.2770392894744873,
4.673813819885254,
-3.319258689880371,
1.4409315586090088,
4.926970958709717,
5.2587361335754395,
-1.0249165296554565,
-1.9151029586791992,
3.3469390869140625,
-5.655460834503174,
-0.9310908317565918,
1.889914870262146,
1.7415921688079834,
2.792124032974243,
-2.2904415130615234,
-0.35307103395462036,
-7.687912464141846,
3.3800578117370605,
-1.0004303455352783,
-0.538013756275177,
5.968576431274414,
-1.8725266456604004,
4.414268493652344,
-1.3398373126983643,
5.847112655639648,
-0.8823839426040649,
-3.061614513397217,
-4.172097682952881,
0.5199050903320312,
-2.83974552154541,
1.7894599437713623,
-0.3212776482105255,
1.9916589260101318,
-3.59755539894104,
-0.05543780326843262,
-4.00023889541626,
-4.610026836395264,
3.1512610912323,
0.3296220302581787,
-4.829360485076904,
-3.8058745861053467,
-2.9025802612304688,
-4.724573135375977,
2.7765512466430664,
-0.8614257574081421,
4.6350016593933105,
-3.192822217941284,
8.156087875366211,
2.1967530250549316,
1.4798681735992432,
-0.2139655351638794,
2.5098695755004883,
-0.9141243100166321,
0.8962705731391907,
-5.281251430511475,
-5.2019758224487305,
0.36304938793182373,
-2.2317490577697754,
-4.200922966003418,
3.646543264389038,
-1.4773303270339966,
5.693246364593506,
6.649788856506348,
9.594747543334961,
8.084684371948242,
4.109189033508301,
-1.1514382362365723,
-3.79378342628479,
-3.480154037475586,
10.20333480834961,
2.9916653633117676,
-4.7623443603515625,
-2.815553903579712,
3.1256189346313477,
-0.17683625221252441,
1.4069968461990356,
0.15567752718925476,
4.422062397003174,
-0.13792681694030762,
-0.13611863553524017,
-4.004006862640381,
-0.7330857515335083,
0.2794785499572754,
1.2011271715164185,
1.155246376991272,
4.6407623291015625,
-1.1888951063156128,
4.365846633911133,
-0.6002482771873474,
-3.0060014724731445,
0.6116334199905396,
-0.7408015131950378,
1.695010781288147,
0.935187578201294,
0.6442794799804688,
-3.2748143672943115,
-2.0293121337890625,
-5.253023624420166,
0.3686100244522095,
-4.746075630187988,
0.7276730537414551,
-0.5353613495826721,
1.609863042831421,
0.22987711429595947,
-3.051483631134033,
-2.196925163269043,
2.5409834384918213,
2.590078115463257,
2.8073747158050537,
-0.28132355213165283,
-3.6353588104248047,
3.98014235496521,
-2.2295749187469482,
-2.7915709018707275,
8.170427322387695,
-1.0024746656417847,
2.566547393798828,
0.06248068809509277,
-0.7986176013946533,
-4.506911754608154,
-2.927586555480957,
-0.12328934669494629,
-3.035170078277588,
4.570350646972656,
-0.9428645372390747,
0.2511644959449768,
7.779752731323242,
2.5547313690185547,
-3.305330276489258,
3.045858860015869,
-0.4476429522037506,
-2.0454654693603516,
-0.903998851776123,
4.6712188720703125,
0.27812618017196655,
5.7286057472229,
0.5027726888656616,
-3.1397976875305176,
-2.410263776779175,
0.7584738731384277,
-0.09872323274612427,
-1.150364875793457,
-1.4736695289611816,
-4.299774169921875,
0.017202258110046387,
2.481471061706543,
-0.31894949078559875,
-4.897672653198242,
0.9074056148529053,
0.812396764755249,
2.7788052558898926,
6.849625587463379,
5.36129093170166,
4.017366886138916,
-3.183743953704834,
-0.5459802150726318,
3.2476983070373535,
3.6680338382720947,
1.4542344808578491,
0.735497236251831,
-1.1498156785964966,
-2.0790834426879883,
0.16575568914413452,
-0.03247302770614624,
6.315743446350098,
0.924880862236023,
-2.996906280517578,
2.4611358642578125,
-3.311616897583008,
-3.387801170349121,
0.8263566493988037,
2.1338391304016113,
0.4939492642879486,
0.8877021074295044,
1.1741135120391846,
2.520150661468506,
0.24434268474578857,
-0.21956467628479004,
1.3664960861206055,
4.209738731384277,
-2.212778329849243,
-2.8679332733154297,
-3.226949691772461,
-1.7605046033859253,
2.150820016860962,
-0.9418412446975708,
0.37490323185920715,
0.8136546611785889,
-0.11969602108001709,
5.994228839874268,
4.868772029876709,
-0.013888329267501831,
-0.030041515827178955,
-4.1262617111206055,
-1.131576657295227,
-0.29804515838623047,
1.016602873802185,
-2.378706932067871,
-0.5206512212753296,
-2.7961068153381348,
2.4040234088897705,
2.989335060119629,
-0.5807543992996216,
-0.8712574243545532,
-2.622992515563965,
2.751124858856201,
2.263490676879883,
0.004918038845062256,
4.510312557220459,
0.1265907883644104,
2.1885972023010254,
1.1275163888931274,
-1.1744939088821411,
-1.9860807657241821,
-2.6154427528381348,
2.6831283569335938,
-5.057710647583008,
-2.955465793609619,
3.8433141708374023,
0.37156692147254944,
-0.9450574517250061,
0.5926560163497925,
1.3082735538482666,
7.855043411254883,
-1.4003933668136597,
6.306633472442627,
-0.4289991855621338,
-2.9058985710144043,
-2.930300235748291,
-3.4064619541168213,
-0.6290552616119385,
2.236776828765869,
-0.5510813593864441,
-5.766793727874756,
4.212404251098633,
1.1983050107955933,
-6.177562236785889,
-0.21780884265899658,
5.1457014083862305,
-3.8856449127197266,
5.100142478942871,
-1.179671049118042,
1.9967836141586304,
-1.6635756492614746,
2.04691743850708,
1.2857341766357422,
-0.9254895448684692,
-1.8866302967071533,
-2.21700119972229,
-2.081390142440796,
-0.5563896894454956,
5.322556018829346,
3.021404266357422,
-4.315042972564697,
-0.7041801810264587,
-5.1402740478515625,
0.4352649450302124,
-1.2055838108062744,
-0.915346622467041,
-4.0407562255859375,
-0.260110467672348,
-2.177421808242798,
8.112772941589355,
-0.8848628997802734,
1.0522022247314453,
0.43089449405670166,
0.016312897205352783,
0.11614853143692017,
-0.970054030418396,
2.685154914855957,
4.828297138214111,
3.130793571472168,
-3.9669342041015625,
6.695780277252197,
-1.3808481693267822,
-0.301638126373291,
-1.1256015300750732,
-1.3600900173187256,
-2.324624538421631,
2.2629315853118896,
0.5607572793960571,
-5.157692909240723,
3.9711337089538574,
6.691866874694824,
-2.4260101318359375,
-1.418802261352539,
0.4121089577674866,
4.471992492675781,
0.9565921425819397,
2.776496410369873,
2.192915916442871,
1.3897244930267334,
2.5141682624816895,
-0.05197015404701233,
0.06691209971904755,
-5.464636325836182,
-2.1806037425994873,
-6.835583686828613,
-2.281047821044922,
0.77875816822052,
-1.253766417503357,
0.9833312034606934,
3.8752336502075195,
4.124049663543701,
-0.8178051710128784,
-3.7768311500549316,
-2.536095380783081,
-5.925909042358398,
4.3578410148620605,
4.045070648193359,
1.4647364616394043,
-3.2888472080230713,
2.4718637466430664,
-2.6735756397247314,
2.3179798126220703,
0.4816662073135376,
-1.835519790649414,
-2.349308490753174,
1.4841803312301636,
8.026285171508789,
1.0783554315567017,
0.7481228113174438,
2.799593210220337,
-3.5019006729125977,
-0.878243088722229,
5.556700706481934,
5.841644287109375,
-0.8360974788665771,
4.000271797180176,
2.1913576126098633,
-2.534567356109619,
4.1587934494018555,
-1.4160758256912231,
2.1097140312194824,
4.607666969299316,
1.5096783638000488,
-1.2303180694580078,
-4.263491153717041,
-2.718886375427246,
5.722687721252441,
-0.5992395877838135,
2.4602646827697754,
0.32089829444885254,
3.0749223232269287,
2.154711961746216,
1.0471856594085693,
6.153417587280273,
-1.0595678091049194,
-0.8727691173553467,
1.8015199899673462,
0.8221091628074646,
-1.4698102474212646,
-0.8753116130828857,
3.660459518432617,
1.7487772703170776,
-4.510850429534912,
1.0301592350006104,
1.6128931045532227,
0.6620266437530518,
1.428957462310791,
-0.8467459678649902,
2.08194637298584,
-1.0377404689788818,
-0.8258668184280396,
-1.931388020515442,
0.07245266437530518,
3.392714738845825,
-2.9453344345092773,
-1.9955157041549683,
15.100059509277344,
-0.8732953071594238,
1.9544179439544678,
-3.4860191345214844,
2.509908676147461,
3.5911426544189453,
-2.4688429832458496,
0.247595876455307,
0.7223533391952515,
0.6755980253219604,
4.797938346862793,
2.8082027435302734,
-4.613275051116943,
5.547893524169922,
3.452322244644165,
-1.9822416305541992,
-3.2672886848449707,
2.8431692123413086,
3.9009008407592773,
-2.3796653747558594,
-3.2589194774627686,
1.6440908908843994,
2.7890090942382812,
0.004936039447784424,
-3.948458433151245,
-0.13766270875930786,
2.2167553901672363,
0.6457685232162476,
-3.3130836486816406,
-4.4620842933654785,
-1.9370622634887695,
-4.617079734802246,
-6.038240909576416,
1.54433012008667,
-0.09978294372558594,
-2.07271671295166,
3.6365294456481934,
1.2165300846099854,
6.736310005187988,
-0.18252074718475342,
3.483471632003784,
2.921428918838501,
5.8854570388793945,
0.9763119220733643,
-2.0435452461242676,
1.5152926445007324,
7.39365816116333,
3.9875752925872803,
0.22976088523864746,
0.17124438285827637,
3.20837140083313,
2.285531997680664,
-2.976733684539795,
2.699382781982422,
-0.7666529417037964,
0.43301108479499817,
0.16560816764831543,
3.5898046493530273,
7.006841659545898,
-0.12547287344932556,
0.5199018120765686,
-0.11101913452148438,
-2.995083808898926,
-0.888218879699707,
-1.3327231407165527,
-3.944938898086548,
-1.4718095064163208,
2.740164041519165,
-2.3250980377197266,
-5.957701683044434,
1.1843727827072144,
-3.0477213859558105,
-1.6871494054794312,
-1.3469650745391846,
-1.4783258438110352,
-0.056777626276016235,
-0.17500090599060059,
-3.129871368408203,
0.3952667713165283,
3.8376286029815674,
2.0914740562438965,
-0.17175006866455078,
-4.356967449188232,
3.0029993057250977,
-2.175262928009033,
0.5232577323913574,
-0.9669685959815979,
0.48462820053100586,
2.615009307861328,
0.39842450618743896,
3.2784276008605957,
-0.7935425043106079,
-0.8281271457672119,
-5.32557487487793,
-3.431715488433838,
2.657937526702881,
1.8374935388565063,
-1.3508665561676025,
1.165624737739563,
-0.7844128608703613,
-3.8114514350891113,
-2.442646026611328,
-1.308203101158142,
-0.1618315577507019,
3.670588970184326,
-1.6248745918273926,
2.7459731101989746,
-0.6265474557876587,
8.495512008666992,
4.642634391784668,
4.539473056793213,
0.5902433395385742,
9.182209014892578,
5.103418827056885,
4.956284046173096,
2.566216468811035,
4.942897796630859,
3.6660542488098145,
23.049583435058594,
-2.7657229900360107,
3.5249435901641846,
1.7531436681747437,
1.537284255027771,
-0.08369851112365723,
0.965727686882019,
1.0605276823043823,
2.5457205772399902,
3.432680130004883,
4.784576416015625,
-4.050437927246094,
-2.3392884731292725,
-1.146059274673462,
1.710395336151123,
0.8851326704025269,
-4.536794662475586,
-2.2027015686035156,
2.881460428237915,
0.0770329087972641
],
"name": "fc_0.tmp_0",
"shape": [
1000
]
},
{
"data": [
-0.003687990130856633,
0.008941259235143661,
-0.042509354650974274,
-0.07615242153406143,
0.0016824366757646203,
0.030000973492860794,
-0.05920300632715225,
0.007062121760100126,
0.010919729247689247,
-0.005986877251416445,
-0.027077991515398026,
-0.03718835487961769,
-0.04542677477002144,
-0.03190528228878975,
-0.03503408282995224,
-0.02900092490017414,
-0.01618349924683571,
-0.04425717145204544,
0.022584278136491776,
-0.029175972566008568,
0.007222338113933802,
0.07700718194246292,
0.03663356229662895,
0.03943665325641632,
0.018214982002973557,
-0.006235828157514334,
0.03991832956671715,
-0.009165618568658829,
0.052990756928920746,
0.027237508445978165,
0.004488788545131683,
0.004633789882063866,
0.0016598375514149666,
-0.029173247516155243,
-0.030307913199067116,
-0.09201760590076447,
0.01796901598572731,
-0.02547488361597061,
0.037831202149391174,
-0.025843188166618347,
-0.0007046036189422011,
0.014085481874644756,
0.042991623282432556,
-0.028124360367655754,
0.0057566845789551735,
0.00628122640773654,
0.018652061000466347,
0.01148306205868721,
-0.034914530813694,
0.012302433140575886,
0.009908963926136494,
-0.03329543396830559,
0.014409501105546951,
0.06615757942199707,
0.048445116728544235,
-0.032974425703287125,
-0.012695248238742352,
0.009905386716127396,
0.029218202456831932,
0.04958366975188255,
-0.038969654589891434,
0.044527195394039154,
0.011119761504232883,
0.042752981185913086,
0.045461833477020264,
0.02014610916376114,
-0.042606718838214874,
-0.043032560497522354,
0.028376195579767227,
0.03386761248111725,
-0.036220550537109375,
0.010016041807830334,
0.009949347004294395,
0.04470713436603546,
-0.051252298057079315,
0.0767943486571312,
0.0041234842501580715,
0.036432620137929916,
0.03746800497174263,
0.049837492406368256,
-0.016233598813414574,
0.004503053147345781,
0.047307197004556656,
-0.07187791168689728,
-0.04691136255860329,
0.01753365993499756,
-0.045829590409994125,
0.03300822526216507,
0.013956207782030106,
0.05863100290298462,
-0.022346297279000282,
-0.01606469787657261,
0.023254569619894028,
-0.01878412440419197,
0.0038996823132038116,
-0.04281593859195709,
0.03302016854286194,
-0.0386907197535038,
-0.07114642858505249,
-0.041318245232105255,
-0.04032706469297409,
-0.04344240576028824,
0.014916200190782547,
0.03272692859172821,
0.07935557514429092,
-0.008555051870644093,
-0.009787137620151043,
-0.0306097399443388,
-0.08618611097335815,
-0.07458283752202988,
-0.075184166431427,
0.11888779699802399,
-0.004389737732708454,
-0.032326407730579376,
0.021167520433664322,
-0.10738597810268402,
-0.02206539548933506,
-0.012461562640964985,
-0.029862049967050552,
-0.02732396312057972,
-0.006496133748441935,
-0.06019638106226921,
0.011636381037533283,
-0.03529941290616989,
-0.024814391508698463,
-0.0558750219643116,
-0.04255114123225212,
-0.008036980405449867,
-0.0013836845755577087,
-0.008182249031960964,
-0.07602342218160629,
-0.017665550112724304,
-0.03154440596699715,
0.03391769528388977,
-0.06318379193544388,
-0.09120860695838928,
-0.009102470241487026,
-0.04334781691431999,
-0.03436822071671486,
-0.057156793773174286,
-0.026569120585918427,
-0.049035243690013885,
-0.07681417465209961,
-0.007682671770453453,
-0.06119278818368912,
-0.013299357146024704,
0.027436597272753716,
-0.10607337951660156,
-0.04855261370539665,
-0.01895856484770775,
-0.03375741094350815,
0.02278212644159794,
-0.07413793355226517,
0.044130343943834305,
-0.042438071221113205,
0.030345484614372253,
0.016346510499715805,
-0.022047536447644234,
-0.0268916767090559,
0.023788440972566605,
0.0037406908813863993,
0.07911145687103271,
0.10528411716222763,
0.028225675225257874,
0.03214694559574127,
-0.036065131425857544,
0.0065807499922811985,
-0.04256792366504669,
0.0017863328102976084,
0.04745251312851906,
0.04024731367826462,
0.07360631227493286,
0.00813769269734621,
-0.0032228557392954826,
0.09753743559122086,
-0.03156182914972305,
-0.015077676624059677,
-0.015156712383031845,
0.057017698884010315,
-0.030488548800349236,
0.01436206977814436,
0.021209977567195892,
0.050788190215826035,
-0.04890962317585945,
0.03269631788134575,
0.03792430832982063,
0.00979586411267519,
0.0075846584513783455,
-0.0013552780728787184,
0.04568997025489807,
0.014611033722758293,
0.03396603837609291,
0.036835771054029465,
-0.015292062424123287,
-0.006450719200074673,
0.09010869264602661,
0.01520546805113554,
0.05093624070286751,
-0.007369194179773331,
0.05408911034464836,
-0.07000315189361572,
-0.01344625186175108,
0.01375866774469614,
0.05445721000432968,
0.08905062079429626,
-0.00881881918758154,
-0.05341064929962158,
-0.03651686757802963,
-0.016954468563199043,
0.07111198455095291,
-0.006579005159437656,
0.043587543070316315,
0.0061905719339847565,
-0.05055670812726021,
-0.010135982185602188,
-0.029468845576047897,
-0.0005263779894448817,
0.11087743937969208,
0.056521639227867126,
0.03685186058282852,
0.003410185454413295,
-0.04220917075872421,
-0.060174569487571716,
0.11088450253009796,
-0.069431833922863,
0.04977741837501526,
0.026545176282525063,
0.011630460619926453,
-0.07659721374511719,
0.06973671168088913,
0.01941361278295517,
-0.011653874069452286,
0.03184152767062187,
0.028282474726438522,
0.028816957026720047,
-0.009142627008259296,
0.08147864043712616,
0.05270121991634369,
0.03915988653898239,
0.07278130203485489,
0.005851069465279579,
-0.019348109140992165,
0.028488166630268097,
-0.004942269530147314,
-0.00551163824275136,
0.10196322947740555,
-0.053148940205574036,
0.03904684633016586,
-0.01270862203091383,
-0.007544093765318394,
-0.007785910274833441,
0.025109879672527313,
-0.039188750088214874,
-0.02362559735774994,
0.01791459508240223,
0.012472287751734257,
-0.024860121309757233,
0.04719432815909386,
0.00444876030087471,
0.028805160894989967,
0.027503645047545433,
0.02371162176132202,
-0.01892799884080887,
0.0607261024415493,
-0.015286020003259182,
0.009634957648813725,
0.03645457327365875,
-0.0011025714920833707,
-0.05426860973238945,
-0.01658141426742077,
0.0731697604060173,
-0.05162889510393143,
0.004718414507806301,
-0.0245496928691864,
-0.028555067256093025,
-0.047821901738643646,
0.01644270494580269,
-0.03812135383486748,
-0.013669120147824287,
0.024389216676354408,
-0.012269080616533756,
0.09645938873291016,
-0.06203361600637436,
-0.026839524507522583,
0.08298112452030182,
0.03540303185582161,
0.010105741210281849,
-0.0029790534172207117,
-0.03672816976904869,
-0.026661334559321404,
-0.036529384553432465,
-0.03294587880373001,
-0.04116649180650711,
-0.03697272390127182,
-0.029658380895853043,
0.011680827476084232,
-0.04510074108839035,
-0.004310951568186283,
0.008505568839609623,
0.022901875898241997,
-0.029224766418337822,
-0.018233710899949074,
0.0029424179811030626,
-0.04292156919836998,
-0.06061087176203728,
0.029131216928362846,
0.025320354849100113,
-0.051130231469869614,
-0.036364343017339706,
-0.03604738041758537,
-0.018819935619831085,
-0.02530958689749241,
0.037919577211141586,
0.03258763253688812,
0.028257347643375397,
0.039612989872694016,
-0.041416067630052567,
-0.021830370649695396,
0.04463235288858414,
0.007241268642246723,
-0.042530711740255356,
-0.06662322580814362,
-0.06920646131038666,
-0.05042976886034012,
-0.03885788470506668,
-0.02979196049273014,
-0.05639709159731865,
-0.03180181607604027,
-0.00023263058392331004,
-0.04037349298596382,
-0.011919450014829636,
-0.04540950059890747,
0.017394384369254112,
0.05616847798228264,
-0.017490621656179428,
-0.01792430691421032,
0.038348469883203506,
-0.0448252335190773,
-0.006676798220723867,
0.01121603325009346,
-0.01954822801053524,
-0.024139299988746643,
-0.008223014883697033,
-0.06968462467193604,
-0.03202514722943306,
0.00808144174516201,
0.0738309919834137,
0.00757223553955555,
0.0350271537899971,
-0.069671630859375,
0.018206359818577766,
-0.017576169222593307,
-0.05238618329167366,
0.0021791569888591766,
0.021363601088523865,
-0.0041518486104905605,
0.02223283238708973,
-0.023093393072485924,
-0.00603022426366806,
0.08376206457614899,
-0.01123447623103857,
0.01212579570710659,
-0.0034400124568492174,
0.011145046912133694,
0.03473440185189247,
0.00573844276368618,
-0.003223319770768285,
0.030685516074299812,
-0.03471050783991814,
0.022468747571110725,
-0.00850107241421938,
-0.039500683546066284,
-0.0366390161216259,
0.009813347831368446,
-0.056138601154088974,
-0.063619464635849,
0.021581145003437996,
-0.03223695605993271,
0.05089665204286575,
0.044291429221630096,
-0.022422200068831444,
-0.03323088213801384,
0.003001729492098093,
-0.00490409042686224,
-0.07070058584213257,
-0.03231103718280792,
-0.015496424399316311,
-0.026021216064691544,
-0.04688943549990654,
-0.034998681396245956,
-0.03197839483618736,
0.02240949310362339,
-0.06649056822061539,
-0.07519687712192535,
-0.026499437168240547,
-0.034499913454055786,
-0.08717647939920425,
-0.04213351011276245,
-0.0034737081732600927,
0.027897685766220093,
0.01174659188836813,
0.05360700562596321,
0.008449586108326912,
-0.025189554318785667,
-0.08118382841348648,
0.06983719766139984,
-0.029494380578398705,
-0.0221935473382473,
-0.10271820425987244,
-0.049354854971170425,
-0.055738139897584915,
0.013217085972428322,
0.013849622569978237,
0.09116585552692413,
0.05216317996382713,
-0.00837879441678524,
0.0464133620262146,
-0.01044970378279686,
0.05477564409375191,
-0.026014428585767746,
-0.001173704513348639,
0.0022124918177723885,
0.03065471351146698,
0.07647182047367096,
0.07389799505472183,
-0.005795970559120178,
-0.07854931801557541,
-0.04907945916056633,
-0.013740096241235733,
-0.013098184019327164,
-0.026600196957588196,
0.00023228125064633787,
0.009565023705363274,
0.05302581563591957,
-0.0523621030151844,
-0.02576652728021145,
0.008274256251752377,
-0.020338213071227074,
0.015584398992359638,
-0.03614825755357742,
0.006268330384045839,
0.036880869418382645,
-0.011098813265562057,
0.004662139806896448,
0.017491009086370468,
0.06573306769132614,
0.011701547540724277,
0.036138277500867844,
0.1117096096277237,
0.04971364140510559,
0.023937132209539413,
0.010641202330589294,
-0.02406194806098938,
-0.0066932812333106995,
0.019962571561336517,
0.06228780373930931,
0.034523192793130875,
0.06635024398565292,
-0.03500073403120041,
0.07475458830595016,
-0.0378866121172905,
0.05885902792215347,
0.0123667661100626,
0.0033683942165225744,
0.06744785606861115,
-0.03752945363521576,
-0.011967504397034645,
-0.026434602215886116,
0.03977688029408455,
-0.030183641240000725,
0.08546694368124008,
-0.03120378963649273,
-0.027351297438144684,
-0.01445120107382536,
-0.05552313104271889,
-0.016734162345528603,
-0.09428578615188599,
0.036037396639585495,
-0.04630902409553528,
-0.01387853268533945,
0.001500910148024559,
-0.004781987983733416,
0.0019548535346984863,
0.0006819817936047912,
-0.05335703864693642,
0.02906760200858116,
0.0030452110804617405,
0.04172055050730705,
-0.07467839121818542,
-0.004307988099753857,
-0.08344320207834244,
0.019224606454372406,
0.07147758454084396,
-0.014791854657232761,
0.026968568563461304,
-0.039765797555446625,
-0.013828659430146217,
-0.08377131819725037,
0.041675712913274765,
0.005277384538203478,
-0.06006735935807228,
0.010793866589665413,
0.015272704884409904,
0.022149482741951942,
0.01512757409363985,
-0.004527449142187834,
-0.012935543432831764,
-0.03776730224490166,
-0.013095385394990444,
-0.048143234103918076,
-0.017418906092643738,
0.034333061426877975,
0.003142914967611432,
0.048323437571525574,
-0.03474922850728035,
-0.004325039219111204,
-0.00014415760233532637,
-0.04636875540018082,
-0.059930045157670975,
0.0034931458067148924,
-0.059927452355623245,
-0.024852020666003227,
0.01490060891956091,
0.05583285540342331,
0.026326831430196762,
-0.03696326166391373,
0.006741013377904892,
-0.0030682350043207407,
-0.06642714887857437,
0.03142065554857254,
0.0037036347202956676,
0.0017363938968628645,
-0.015277402475476265,
0.019609834998846054,
-0.02694837749004364,
-0.008354587480425835,
-0.0055337161757051945,
0.022408809512853622,
-0.006945227272808552,
0.05902312695980072,
-0.0698198601603508,
-0.04078444465994835,
0.030125360935926437,
0.010561134666204453,
-0.04395989701151848,
-0.024733366444706917,
-0.028281502425670624,
-0.058289363980293274,
-0.04675664007663727,
0.030668746680021286,
-0.002263790462166071,
0.002689843764528632,
0.015689371153712273,
-0.01950017176568508,
-0.03821331635117531,
-0.009851339273154736,
-0.08586031943559647,
0.05122917518019676,
0.02099631354212761,
0.0006388869951479137,
0.02541801519691944,
-0.0322190523147583,
-0.033301420509815216,
0.09745650738477707,
-0.012861361727118492,
-0.05405476689338684,
-0.008959059603512287,
0.07859686017036438,
0.023672476410865784,
-0.03663608431816101,
-0.045123424381017685,
0.003407943295314908,
0.036900319159030914,
-0.0012528724037110806,
0.051791124045848846,
0.015041890554130077,
0.03089899756014347,
0.008894169703125954,
0.03784835338592529,
0.04624969884753227,
-0.0602201484143734,
-0.0167662613093853,
0.04718945175409317,
0.03888638690114021,
0.040561284869909286,
-0.015315012075006962,
-0.029687007889151573,
0.075917549431324,
0.02619314193725586,
0.011586178094148636,
0.01692967861890793,
-0.05843432620167732,
-0.030753903090953827,
0.04426487162709236,
-0.002235148334875703,
0.00011897759395651519,
0.022682417184114456,
0.04427789896726608,
-0.0253220833837986,
0.016511814668774605,
0.014768368564546108,
0.06125757098197937,
0.01421970222145319,
0.005477714352309704,
0.05005384981632233,
0.0009486618218943477,
0.004594333469867706,
0.008400551043450832,
0.04632335156202316,
0.008378999307751656,
0.042716316878795624,
-0.07891610264778137,
-0.03962177783250809,
-0.030608778819441795,
0.02148515172302723,
-0.016777973622083664,
-0.03356126695871353,
0.018223969265818596,
-0.017884358763694763,
-0.046243660151958466,
0.03091009333729744,
0.04488755017518997,
0.06628728657960892,
0.14274229109287262,
0.033918581902980804,
0.005349063780158758,
0.03341435268521309,
0.05175795778632164,
-0.012876573018729687,
0.08838945627212524,
0.04307498037815094,
-0.039001114666461945,
0.05480039119720459,
0.018039382994174957,
0.023021742701530457,
-0.037194445729255676,
0.08447261899709702,
0.004635825287550688,
0.007818537764251232,
-0.0471501424908638,
-0.04337930306792259,
-0.03731657192111015,
0.029189802706241608,
-2.943669824162498e-05,
0.04206568002700806,
-0.046573907136917114,
0.049842674285173416,
-0.07550699263811111,
0.013699652627110481,
0.01364654116332531,
0.044443529099226,
-0.032991472631692886,
0.00199594022706151,
0.03455238416790962,
0.06704609841108322,
0.10915092378854752,
0.013607824221253395,
0.030938198789954185,
0.03007160872220993,
0.03932444006204605,
0.03017045184969902,
-0.045967865735292435,
0.07971260696649551,
-0.03735628351569176,
0.004719314631074667,
0.025986433029174805,
0.05499814823269844,
0.03798016905784607,
-0.03506499156355858,
-0.07836069166660309,
-0.006422300357371569,
0.08364897966384888,
0.031139858067035675,
0.0237562395632267,
0.03418833762407303,
-0.04556337743997574,
-0.054386042058467865,
0.037647366523742676,
0.07103682309389114,
0.032817550003528595,
0.017459850758314133,
0.025301214307546616,
0.012718969956040382,
0.040260981768369675,
0.053317587822675705,
-0.02250387705862522,
0.06267426162958145,
-0.041697483509778976,
-0.0776071771979332,
-0.029911287128925323,
-0.009513238444924355,
-0.011716986075043678,
0.04091794043779373,
-0.07932541519403458,
-0.05547358840703964,
0.022563990205526352,
0.056522518396377563,
-0.05715760216116905,
0.017715174704790115,
-0.027290472760796547,
0.007600400596857071,
-0.012442394159734249,
-0.07039974629878998,
-0.00028295081574469805,
0.07013864815235138,
-0.04879284277558327,
0.016179071739315987,
0.0013504876988008618,
-0.041525281965732574,
0.02081078104674816,
-0.0196123868227005,
0.032823868095874786,
0.02349238656461239,
-0.017578549683094025,
0.04525979235768318,
0.012601063586771488,
0.05026762932538986,
-0.0040748827159404755,
0.03857560455799103,
0.08672965317964554,
0.028569836169481277,
-0.012252695858478546,
0.05252901092171669,
-0.030442694202065468,
-0.047434158623218536,
0.011545209214091301,
0.004960620775818825,
-0.0417361781001091,
-0.059848688542842865,
-0.002107459818944335,
-0.05377114191651344,
0.05968847870826721,
0.053163085132837296,
-0.05112070590257645,
-0.04243450611829758,
-0.03251194208860397,
0.013431361876428127,
-0.01739482954144478,
-0.001889650709927082,
0.05608241632580757,
-0.01217451598495245,
0.016882428899407387,
0.010958705097436905,
0.000917949597351253,
0.005902082193642855,
0.01774146594107151,
0.019388500601053238,
0.031179876998066902,
0.03483326733112335,
0.08622352033853531,
-0.023635651916265488,
0.04065284878015518,
0.04532768949866295,
0.004761804360896349,
-0.012697340920567513,
-0.01930900476872921,
0.020402081310749054,
-0.054622046649456024,
0.022921158000826836,
0.029295874759554863,
-0.012813729234039783,
0.033268582075834274,
-0.02670474536716938,
0.019629303365945816,
0.03199295327067375,
0.009693413972854614,
-0.05808739364147186,
0.022128207609057426,
0.007398845162242651,
0.05463213473558426,
-0.001370777958072722,
-0.010825964622199535,
-0.004721509292721748,
0.01866617053747177,
0.06790919601917267,
0.004824503790587187,
0.030829856172204018,
0.062489259988069534,
-0.031852807849645615,
-0.039454106241464615,
-0.05762400105595589,
-0.034367915242910385,
0.026951737701892853,
-0.0058794948272407055,
-0.018224380910396576,
-0.0033117542043328285,
-0.015716953203082085,
-0.04995019733905792,
-0.02712280862033367,
-0.008370775729417801,
-0.03431384637951851,
0.0416133776307106,
0.0005534720839932561,
0.002803171519190073,
-0.046293120831251144,
-0.06276726722717285,
-0.0257625263184309,
-0.018244262784719467,
-0.025223413482308388,
-0.01072604674845934,
-0.05687200278043747,
0.003217678051441908,
-0.04279552027583122,
-0.027273062616586685,
-0.026034438982605934,
0.005079316906630993,
0.00520298769697547,
-0.018159575760364532,
0.011921577155590057,
0.003878217190504074,
-0.08502774685621262,
-0.03791035711765289,
0.04824737459421158,
-0.024019774049520493,
-0.019636359065771103,
-0.03588871285319328,
0.08719196915626526,
0.028716744855046272,
-0.04219309985637665,
0.024259814992547035,
-0.027386216446757317,
-0.0009738823282532394,
0.016394784674048424,
0.102895587682724,
0.03388987109065056,
0.00011744347284547985,
-0.020539140328764915,
-0.06474660336971283,
0.06117396429181099,
-0.02797951176762581,
0.006057301070541143,
0.0028115161694586277,
0.0039796908386051655,
-0.015010246075689793,
0.10862033069133759,
-0.03992471843957901,
0.08181249350309372,
0.07777091860771179,
0.06840945780277252,
0.025010455399751663,
0.007091366220265627,
-0.01059243455529213,
0.0447077713906765,
0.0604066327214241,
0.022920845076441765,
0.08226370066404343,
0.013317991979420185,
0.0011763354996219277,
0.03883127123117447,
0.0745445266366005,
0.05125625804066658,
-0.03705110028386116,
0.011146004311740398,
-0.027503741905093193,
-0.027643678709864616,
0.020032767206430435,
-0.057130493223667145,
0.0054396879859268665,
0.04384961724281311,
0.07611638307571411,
-0.03160066157579422,
0.011447485536336899,
-0.05587098002433777,
0.016214223578572273,
-0.004277338273823261,
-0.012149898335337639,
0.0005352659500204027,
-0.0011923728743568063,
0.09622707962989807,
-0.013957038521766663,
0.02614167146384716,
-0.04715534672141075,
0.07046947628259659,
-0.030087245628237724,
-0.07538038492202759,
0.005601473618298769,
0.020381541922688484,
0.0007213251665234566,
-0.03494713827967644,
0.09191235899925232,
0.0776251032948494,
0.01217822078615427,
0.03080901876091957,
-0.009339629672467709,
0.008593853563070297,
0.09997996687889099,
-0.04608052223920822,
-0.046993814408779144,
-0.0025786906480789185,
0.04704232141375542,
-0.03138108551502228,
-0.03445694223046303,
0.01121643465012312,
0.06339779496192932,
-0.027784790843725204,
0.035187043249607086,
0.03848481550812721,
0.04067709669470787,
0.02477540634572506,
-0.017407990992069244,
-0.02562996745109558,
-0.017839206382632256,
-0.013904049061238766,
0.07074828445911407,
-0.01998770982027054,
0.04176481068134308,
0.025349991396069527,
0.03619129955768585,
-0.028926564380526543,
0.023561900481581688,
0.06832046806812286,
-0.0022936644963920116,
-0.037927981466054916,
-0.011110823601484299,
0.003997039515525103,
-0.018610212951898575,
-0.0777856633067131,
-0.06572680920362473,
0.015108302235603333,
0.07599352300167084,
0.06262318789958954,
0.016255853697657585,
-0.020373031497001648,
0.010496476665139198,
-0.06893618404865265,
-0.0399383120238781,
-0.04000330716371536,
-0.013301906175911427,
-0.006480810232460499,
0.11576880514621735,
0.03634243085980415,
-0.005271580535918474,
-0.014077144674956799,
-0.026059696450829506,
0.013743389397859573,
-0.013923931866884232,
-0.010056555271148682,
-0.046551626175642014,
-0.07423108071088791,
-0.03545554727315903,
0.030452528968453407,
-0.0164776723831892,
-0.03782391920685768,
-0.030053239315748215,
-0.0450371690094471,
-0.017368139699101448,
-0.03565021976828575,
-0.03353315219283104,
0.008026614785194397,
-0.023412618786096573,
-0.025333400815725327,
-0.03468359634280205,
0.011942660436034203,
-0.04171815142035484,
-0.015292288735508919,
-0.016381343826651573,
-0.011084257625043392,
-0.008780824951827526,
-0.022404469549655914,
-0.09128870815038681,
-0.029446301981806755,
0.005666058510541916,
-0.04409130662679672,
-0.02468474768102169,
-0.08587147295475006,
0.01264773029834032,
0.0693143829703331,
0.04210692644119263,
-0.008101150393486023,
0.04196253791451454,
-0.057191651314496994,
0.03887677565217018,
0.0007247937028296292,
-0.07097858190536499,
-0.028197672218084335,
0.01593373529613018,
0.027537429705262184,
0.04274371266365051,
0.026650140061974525,
-0.06849484145641327,
0.033079057931900024,
0.016998326405882835,
0.0614488385617733,
-0.03208369016647339,
-0.0011799107305705547,
-0.008556938730180264,
-0.04253137484192848,
0.006528179626911879,
-0.008368730545043945,
0.006762103643268347,
0.032385826110839844,
-0.0629633367061615,
-0.020283207297325134,
-0.10449697077274323,
-0.03983088955283165,
-0.0652599185705185,
-0.011780574917793274,
-0.00901532918214798,
-0.017431063577532768,
8.897688530851156e-05
],
"name": "fc7_offset",
"shape": [
1000
]
},
{
"data": [
-1.1135177612304688,
6.288958549499512,
3.139874219894409,
1.9048583507537842,
0.03913835436105728,
2.6481428146362305,
2.8079400062561035,
2.1263062953948975,
-0.6012501120567322,
-4.3257622718811035,
-5.596638202667236,
-3.122722864151001,
0.15927131474018097,
-2.9604926109313965,
-4.069268226623535,
-0.3509599566459656,
-3.8499019145965576,
-3.502720832824707,
-1.8450493812561035,
-2.911593437194824,
-3.2176897525787354,
2.9500503540039062,
1.2102972269058228,
0.7517126202583313,
-1.9848179817199707,
-0.08928977698087692,
1.0721582174301147,
-0.14318805932998657,
-1.3973617553710938,
0.9336868524551392,
1.3169736862182617,
-0.5166665315628052,
2.9748587608337402,
2.222357988357544,
4.300759315490723,
0.30319321155548096,
-0.006494995206594467,
-2.8430075645446777,
-1.144093632698059,
-1.9795348644256592,
-1.3029303550720215,
-2.991396903991699,
1.069321632385254,
2.152038335800171,
-2.551513671875,
-1.9288045167922974,
-1.5026218891143799,
-3.02573823928833,
-4.000486850738525,
-3.1551754474639893,
0.9542933702468872,
-2.602130174636841,
-3.8310000896453857,
-3.5045058727264404,
0.1277388483285904,
-1.756664514541626,
-2.5417673587799072,
-2.5876262187957764,
-1.9096553325653076,
0.180572509765625,
0.7920528650283813,
-4.119457721710205,
-2.2808122634887695,
-2.2101640701293945,
-0.2808034420013428,
-1.6263320446014404,
-0.8479610085487366,
-0.4797917902469635,
-1.818886399269104,
-1.5055320262908936,
-1.4128488302230835,
-2.5348434448242188,
-1.887861967086792,
2.948688268661499,
1.7228940725326538,
-0.4362483322620392,
1.1495392322540283,
1.4625887870788574,
1.5648139715194702,
-0.7236918210983276,
1.599829912185669,
0.7933265566825867,
1.2352303266525269,
-0.8543774485588074,
-5.039606094360352,
-1.5521436929702759,
-0.7921367287635803,
-2.934796094894409,
-1.9191449880599976,
-4.304612636566162,
-1.9234520196914673,
-3.6729063987731934,
-4.655753135681152,
-2.873351573944092,
-0.7903644442558289,
-4.490265846252441,
-1.8164656162261963,
-0.7162665724754333,
-3.195564031600952,
-1.1332260370254517,
-1.2450087070465088,
2.654376983642578,
-4.2748122215271,
-1.4303213357925415,
-1.614728331565857,
-4.476330757141113,
1.6490802764892578,
5.233551502227783,
-0.3165779113769531,
-2.0802481174468994,
2.3546152114868164,
3.9514129161834717,
6.232498645782471,
1.0490273237228394,
0.9326438307762146,
3.712100028991699,
-0.8434510231018066,
2.6792490482330322,
3.1296162605285645,
3.223210096359253,
-1.6055116653442383,
5.80521821975708,
3.3964550495147705,
1.011749267578125,
1.6933361291885376,
5.176721572875977,
2.3967502117156982,
-0.6730397343635559,
-2.7001023292541504,
-3.7109756469726562,
-1.14090096950531,
-4.587691307067871,
-1.333116054534912,
-4.107562065124512,
-3.6067891120910645,
0.022360533475875854,
-4.151522159576416,
-3.132967472076416,
-5.283032417297363,
-1.1128923892974854,
-5.726787567138672,
-3.259611129760742,
-6.0796637535095215,
-1.5227385759353638,
0.7056931853294373,
2.0717215538024902,
-1.8915910720825195,
6.9576215744018555,
2.1103978157043457,
-2.5883052349090576,
-0.4441264569759369,
0.29632315039634705,
-4.115409851074219,
-1.7699885368347168,
-1.0301513671875,
-1.3696787357330322,
-2.761214256286621,
-2.2525429725646973,
-3.8018980026245117,
-2.6193923950195312,
-1.1923953294754028,
-0.8128389120101929,
-2.585618257522583,
-0.6347448825836182,
-1.7189230918884277,
-0.9218324422836304,
-3.2434442043304443,
-2.1508426666259766,
0.20600341260433197,
-2.162846803665161,
0.826657772064209,
-2.9015021324157715,
-2.265634775161743,
-0.6910134553909302,
-0.8061107993125916,
-0.7938972115516663,
-3.5841989517211914,
-0.9715676307678223,
-1.3360918760299683,
-2.2801849842071533,
-3.5794837474823,
-2.046212911605835,
-0.49998578429222107,
2.6022450923919678,
3.2232179641723633,
-0.43327096104621887,
-0.43072545528411865,
0.028539717197418213,
2.9475526809692383,
0.2802347242832184,
-1.561449408531189,
2.756429433822632,
-1.04819917678833,
-2.1431262493133545,
-4.478471755981445,
-0.06046929955482483,
1.0384304523468018,
0.2062852531671524,
-0.8454253673553467,
2.7614078521728516,
-1.2345904111862183,
-1.400450348854065,
-0.1786937266588211,
1.6461610794067383,
-1.7984795570373535,
-2.061809778213501,
-2.770155429840088,
0.7444724440574646,
-2.25679087638855,
-1.143601417541504,
-3.0761778354644775,
0.2368452250957489,
2.2915382385253906,
3.751492977142334,
0.9513205885887146,
0.22786934673786163,
-2.7496840953826904,
0.6290023922920227,
0.003699198365211487,
2.7009973526000977,
0.48269402980804443,
-0.861529529094696,
-1.8455449342727661,
1.311780571937561,
2.8576531410217285,
-3.386429786682129,
-0.9015589952468872,
-2.7003421783447266,
-0.37863194942474365,
-1.1736881732940674,
0.23105797171592712,
0.24713507294654846,
-0.3406108021736145,
1.2424044609069824,
-0.8538718223571777,
-0.2684188485145569,
-1.2067370414733887,
-0.7052292227745056,
-2.275963306427002,
-1.8765861988067627,
1.1009433269500732,
-0.9290322661399841,
-0.5795953869819641,
-4.521215438842773,
-2.0830078125,
-0.03133445233106613,
-2.6075408458709717,
-0.8438606858253479,
-1.4943246841430664,
-0.8214187026023865,
0.4131604731082916,
2.144296169281006,
-0.5544344186782837,
-1.3938241004943848,
-1.8246674537658691,
-3.185823678970337,
-0.5576209425926208,
-2.192222833633423,
2.806727170944214,
1.1733990907669067,
-0.08159276098012924,
-2.1470870971679688,
-0.6794589757919312,
-1.6413061618804932,
-1.389523983001709,
0.3174307346343994,
-1.4913421869277954,
2.589702844619751,
-5.424981594085693,
3.14266300201416,
1.9202947616577148,
1.3934451341629028,
-0.28893977403640747,
2.783479928970337,
0.7540513277053833,
2.1970536708831787,
3.844935178756714,
2.0208959579467773,
-3.0737786293029785,
-0.3650449514389038,
-0.9322575926780701,
-2.5201945304870605,
-3.770314931869507,
1.6335101127624512,
-1.870066523551941,
-2.0942318439483643,
1.506428599357605,
-1.9663705825805664,
0.9056843519210815,
-2.3463313579559326,
-0.8382065892219543,
2.1236884593963623,
-5.041065216064453,
0.07987252622842789,
6.912156105041504,
2.558126449584961,
3.1287927627563477,
0.08568187057971954,
-0.11802269518375397,
0.906413197517395,
-6.439662933349609,
1.396309494972229,
0.6348122954368591,
-1.2416276931762695,
-0.1382899135351181,
-4.502665042877197,
-0.7919870615005493,
-1.5633372068405151,
0.46295979619026184,
3.5294690132141113,
2.5100436210632324,
-1.5220637321472168,
-1.243208885192871,
2.140782356262207,
-1.107566237449646,
0.5321031808853149,
-2.3318674564361572,
-1.4352529048919678,
0.05798972770571709,
0.6704398393630981,
0.8080523610115051,
1.4889743328094482,
-2.9919238090515137,
-0.5327302813529968,
-1.7200275659561157,
-2.7397515773773193,
-4.664469242095947,
6.672308921813965,
2.1278116703033447,
4.903074741363525,
-2.885180950164795,
0.3048209547996521,
-2.2697489261627197,
-0.3579505383968353,
-3.4912190437316895,
0.8643660545349121,
2.4931955337524414,
0.2035190761089325,
-3.760498285293579,
4.380125999450684,
-1.3057351112365723,
-1.369592308998108,
-2.401876926422119,
-2.4498915672302246,
-0.7065585255622864,
1.6136775016784668,
-4.125005722045898,
5.1046552658081055,
-1.864634394645691,
-2.7479870319366455,
2.8492558002471924,
-1.8721797466278076,
-3.5855660438537598,
-5.791052341461182,
4.716646194458008,
0.7182656526565552,
-1.5115002393722534,
-2.3466901779174805,
-2.1319382190704346,
-1.7151187658309937,
-0.7809315323829651,
-1.3043848276138306,
-3.4859538078308105,
-1.9124085903167725,
-3.841890573501587,
2.875410556793213,
-1.4392427206039429,
-0.7927815318107605,
-5.1780219078063965,
-4.427769660949707,
-3.303980827331543,
-3.0374269485473633,
0.5805526375770569,
0.003860095515847206,
0.616568386554718,
-4.566771984100342,
-2.314667224884033,
-0.9728753566741943,
-0.5612640380859375,
-2.1157753467559814,
0.5822577476501465,
0.19072259962558746,
-1.9761295318603516,
-5.34631872177124,
-0.15873247385025024,
1.5741854906082153,
0.19256766140460968,
-0.893580436706543,
-4.563290119171143,
3.085646390914917,
1.2774627208709717,
-1.228529691696167,
-0.5872294902801514,
-0.7993833422660828,
-0.27998870611190796,
0.20474407076835632,
0.45689675211906433,
-0.4169624447822571,
-1.458970069885254,
0.4040461480617523,
1.5903464555740356,
0.8884001970291138,
1.4965789318084717,
0.8713038563728333,
1.190368413925171,
4.0006818771362305,
1.3812894821166992,
2.443248748779297,
-3.691615343093872,
3.6675219535827637,
-0.28525710105895996,
-4.323070049285889,
-0.7842081189155579,
-0.9959515929222107,
-2.7769031524658203,
-1.2515490055084229,
-2.0718178749084473,
5.263943672180176,
2.7395377159118652,
-0.20292477309703827,
2.0371251106262207,
4.687855243682861,
-1.6174226999282837,
-6.011782646179199,
-2.406636953353882,
5.687418460845947,
2.068570137023926,
2.6315081119537354,
-1.2711865901947021,
-1.9762932062149048,
-4.717271327972412,
-0.9369955658912659,
3.616706609725952,
1.6450910568237305,
-0.5974013209342957,
1.9036098718643188,
-3.0006422996520996,
8.5920991897583,
0.9085093140602112,
1.8057917356491089,
2.794481039047241,
3.6742942333221436,
5.859650611877441,
-5.367660999298096,
-0.23054727911949158,
0.16943949460983276,
-3.502530336380005,
4.531452178955078,
2.216261625289917,
2.0808639526367188,
-5.725005149841309,
0.7010980248451233,
-0.26391342282295227,
-1.183639645576477,
-2.2641284465789795,
-0.19194045662879944,
-0.1496332883834839,
1.1107094287872314,
0.6537806987762451,
0.06566338986158371,
4.320130348205566,
-0.08742954581975937,
-2.0149173736572266,
0.44996148347854614,
1.3544546365737915,
-2.3553712368011475,
-1.5237796306610107,
-0.3587614893913269,
2.0180962085723877,
6.839800834655762,
6.757830619812012,
5.435042858123779,
1.472086787223816,
-5.827995300292969,
-1.7366204261779785,
5.700528621673584,
4.597124099731445,
-6.591582298278809,
-4.777801036834717,
-3.023289918899536,
-0.7286937832832336,
-3.7894070148468018,
-4.362597465515137,
3.1441218852996826,
-1.2777856588363647,
-1.8854466676712036,
-0.1450381726026535,
-2.446958065032959,
5.533286094665527,
3.4368019104003906,
1.0337337255477905,
1.9079962968826294,
-0.6734300255775452,
-2.2918312549591064,
4.700782299041748,
-3.3590245246887207,
1.4271029233932495,
4.843199729919434,
5.300411701202393,
-1.0196391344070435,
-1.975170373916626,
3.3577330112457275,
-5.640188217163086,
-0.9089413285255432,
1.9050424098968506,
1.7370647192001343,
2.779188394546509,
-2.3282089233398438,
-0.3661664128303528,
-7.736055850982666,
3.3626389503479004,
-0.9660972952842712,
-0.5348708629608154,
6.016900062561035,
-1.907275915145874,
4.409943580627441,
-1.3399814367294312,
5.80074405670166,
-0.9423139691352844,
-3.0581214427948,
-4.232025146484375,
0.49505308270454407,
-2.8248448371887207,
1.8452928066253662,
-0.29495081305503845,
1.954695701599121,
-3.5908143520355225,
-0.058506038039922714,
-4.066666126251221,
-4.578606128692627,
3.1549646854400635,
0.3313584327697754,
-4.844637870788574,
-3.786264657974243,
-2.9295287132263184,
-4.7329277992248535,
2.771017551422119,
-0.8390169739723206,
4.628056526184082,
-3.1337990760803223,
8.086268424987793,
2.15596866607666,
1.509993553161621,
-0.20340439677238464,
2.465909719467163,
-0.9388576745986938,
0.8679890632629395,
-5.339540958404541,
-5.248732566833496,
0.3937181234359741,
-2.2340128421783447,
-4.198233127593994,
3.6622326374053955,
-1.4968304634094238,
5.655033111572266,
6.639937400817871,
9.50888729095459,
8.135913848876953,
4.130185127258301,
-1.1507993936538696,
-3.7683653831481934,
-3.5123729705810547,
10.17003345489502,
3.0891218185424805,
-4.775205612182617,
-2.8696086406707764,
3.1166598796844482,
-0.09823939204216003,
1.4306693077087402,
0.11904144287109375,
4.376938819885254,
-0.13451887667179108,
-0.09921831637620926,
-4.0052595138549805,
-0.6812946200370789,
0.29452043771743774,
1.232026219367981,
1.1641405820846558,
4.678610801696777,
-1.1426453590393066,
4.305626392364502,
-0.6170145273208618,
-2.9588119983673096,
0.6505197882652283,
-0.7002402544021606,
1.679695725440979,
0.905500590801239,
0.7201970219612122,
-3.2486212253570557,
-2.017725944519043,
-5.236093997955322,
0.31017568707466125,
-4.776829719543457,
0.771937906742096,
-0.5375965237617493,
1.6099820137023926,
0.2525595426559448,
-3.0072057247161865,
-2.222247362136841,
2.557495355606079,
2.604846477508545,
2.8686323165893555,
-0.2671038508415222,
-3.6298811435699463,
4.030196189880371,
-2.228626251220703,
-2.7869765758514404,
8.178828239440918,
-0.9561513066291809,
2.5749263763427734,
0.1051970049738884,
-0.8775336742401123,
-4.546533584594727,
-2.958195447921753,
-0.10180419683456421,
-3.051948070526123,
4.536789417266846,
-0.9246405959129333,
0.23328013718128204,
7.733509063720703,
2.585641384124756,
-3.2604427337646484,
3.1121461391448975,
-0.3049006462097168,
-2.0115468502044678,
-0.8986498117446899,
4.7046332359313965,
0.3298841416835785,
5.715729236602783,
0.5911621451377869,
-3.0967226028442383,
-2.4492650032043457,
0.8132742643356323,
-0.08068384975194931,
-1.1273431777954102,
-1.510864019393921,
-4.215301513671875,
0.021838083863258362,
2.4892895221710205,
-0.36609962582588196,
-4.941051959991455,
0.870089054107666,
0.8415865898132324,
2.778775930404663,
6.891691207885742,
5.314716815948486,
4.067209720611572,
-3.2592508792877197,
-0.5322805643081665,
3.2613449096679688,
3.712477445602417,
1.4212429523468018,
0.7374931573867798,
-1.1152633428573608,
-2.0120372772216797,
0.27490660548210144,
-0.018865203484892845,
6.346681594848633,
0.9549524784088135,
-2.9575817584991455,
2.4913063049316406,
-3.3575847148895264,
-3.308088541030884,
0.789000391960144,
2.1385583877563477,
0.5199357271194458,
0.9427002668380737,
1.212093710899353,
2.4850857257843018,
0.16598199307918549,
-0.22598697245121002,
1.4501450061798096,
4.240878582000732,
-2.1890220642089844,
-2.833745002746582,
-3.2725131511688232,
-1.8148906230926514,
2.188467502593994,
-0.8708044290542603,
0.40772077441215515,
0.8311145305633545,
-0.09439480304718018,
6.006947994232178,
4.909032821655273,
0.039429258555173874,
-0.05254539102315903,
-4.063587665557861,
-1.1732741594314575,
-0.37565234303474426,
0.9866915941238403,
-2.3882200717926025,
-0.5323681831359863,
-2.7551889419555664,
2.324697971343994,
2.933861494064331,
-0.5581904053688049,
-0.814734935760498,
-2.680150032043457,
2.7688400745391846,
2.2362000942230225,
0.012518439441919327,
4.497869968414307,
0.05619104206562042,
2.188314199447632,
1.1976550817489624,
-1.223286747932434,
-1.96990168094635,
-2.6140923500061035,
2.6416029930114746,
-5.036900043487549,
-2.9750781059265137,
3.8761379718780518,
0.3950593173503876,
-0.9626359939575195,
0.6379157900810242,
1.320874571800232,
7.905311107635498,
-1.404468297958374,
6.345209121704102,
-0.34226953983306885,
-2.877328634262085,
-2.9425530433654785,
-3.3539328575134277,
-0.6594979763031006,
2.189342737197876,
-0.53953617811203,
-5.761833190917969,
4.170668125152588,
1.1384563446044922,
-6.1796698570251465,
-0.2715799808502197,
5.205389976501465,
-3.832481861114502,
5.0490217208862305,
-1.2221055030822754,
1.9642716646194458,
-1.650144338607788,
2.029522657394409,
1.2838444709777832,
-0.8694071173667908,
-1.898804783821106,
-2.2001187801361084,
-2.0704314708709717,
-0.5554717183113098,
5.328458309173584,
3.0391457080841064,
-4.295654296875,
-0.6730002760887146,
-5.105440616607666,
0.5214884877204895,
-1.2292194366455078,
-0.874693751335144,
-3.9954285621643066,
-0.25534865260124207,
-2.1901192665100098,
8.093463897705078,
-0.864460825920105,
0.9975801706314087,
0.45381563901901245,
0.045608773827552795,
0.10333479940891266,
-0.9367854595184326,
2.658450126647949,
4.847926616668701,
3.1627864837646484,
-3.9572408199310303,
6.637692928314209,
-1.3587199449539185,
-0.2942392826080322,
-1.0709693431854248,
-1.36146080493927,
-2.3354504108428955,
2.2582101821899414,
0.5794234275817871,
-5.089783668518066,
3.9759581089019775,
6.722696781158447,
-2.363520860671997,
-1.4506551027297974,
0.37265485525131226,
4.414368629455566,
0.922224223613739,
2.80344820022583,
2.1870365142822266,
1.3715001344680786,
2.5108563899993896,
-0.06768710911273956,
0.016961902379989624,
-5.491759300231934,
-2.188974618911743,
-6.869897365570068,
-2.2394344806671143,
0.7793116569519043,
-1.2509632110595703,
0.9370380640029907,
3.8124663829803467,
4.098287105560303,
-0.8360494375228882,
-3.8020546436309814,
-2.546821355819702,
-5.982780933380127,
4.361058712005615,
4.002274990081787,
1.437463402748108,
-3.3148815631866455,
2.476943016052246,
-2.668372631072998,
2.2998201847076416,
0.49358779191970825,
-1.8316415548324585,
-2.4343361854553223,
1.4462699890136719,
8.074532508850098,
1.0543357133865356,
0.7284864783287048,
2.763704538345337,
-3.4147086143493652,
-0.8495263457298279,
5.51450777053833,
5.865904331207275,
-0.8634836673736572,
3.999297857284546,
2.2077524662017822,
-2.4316718578338623,
4.192683219909668,
-1.4159584045410156,
2.08917498588562,
4.5429205894470215,
1.570852279663086,
-1.2582975625991821,
-4.257433891296387,
-2.7160749435424805,
5.726667404174805,
-0.6142498254776001,
2.568885087966919,
0.2809735834598541,
3.1567347049713135,
2.23248291015625,
1.1155951023101807,
6.1784281730651855,
-1.052476406097412,
-0.8833615779876709,
1.846227765083313,
0.8825157880783081,
-1.4468894004821777,
-0.7930479049682617,
3.6737775802612305,
1.7499536275863647,
-4.472019195556641,
1.1047037839889526,
1.6641494035720825,
0.6249755620956421,
1.4401034116744995,
-0.8742496967315674,
2.05430269241333,
-1.0177077054977417,
-0.8829973340034485,
-1.9259483814239502,
0.11630228161811829,
3.4688310623168945,
-2.9769351482391357,
-1.9840682744979858,
15.044188499450684,
-0.8570810556411743,
1.9501405954360962,
-3.4981689453125,
2.510443925857544,
3.5899503231048584,
-2.3726158142089844,
0.23363883793354034,
0.7484949827194214,
0.6284427046775818,
4.868407726287842,
2.7781155109405518,
-4.688655376434326,
5.553494930267334,
3.472703695297241,
-1.9815202951431274,
-3.3022358417510986,
2.9350814819335938,
3.9785258769989014,
-2.3674871921539307,
-3.2281105518341064,
1.634751319885254,
2.797602891921997,
0.10491600632667542,
-3.9945390224456787,
-0.1846565306186676,
2.214176654815674,
0.6928108334541321,
-3.3444647789001465,
-4.4965410232543945,
-1.9258458614349365,
-4.55368185043335,
-6.066025733947754,
1.579517126083374,
-0.061298128217458725,
-2.0320396423339844,
3.6613049507141113,
1.1991220712661743,
6.71068000793457,
-0.20035995543003082,
3.4695675373077393,
2.9921772480010986,
5.865469455718994,
1.018076777458191,
-2.018195152282715,
1.5514839887619019,
7.364731788635254,
4.011137008666992,
0.29808133840560913,
0.16895072162151337,
3.170443534851074,
2.274421215057373,
-2.9727365970611572,
2.680772542953491,
-0.8444386124610901,
0.36728426814079285,
0.18071646988391876,
3.6657981872558594,
7.069464683532715,
-0.10921701788902283,
0.49952876567840576,
-0.10052265971899033,
-3.0640199184417725,
-0.9281572103500366,
-1.3727264404296875,
-3.9582407474517822,
-1.478290319442749,
2.8559329509735107,
-2.2887556552886963,
-5.962973117828369,
1.1702955961227417,
-3.0737810134887695,
-1.6734060049057007,
-1.360888957977295,
-1.488382339477539,
-0.10332925617694855,
-0.2492319941520691,
-3.1653268337249756,
0.425719290971756,
3.8211510181427,
2.053650140762329,
-0.2018033117055893,
-4.402004718780518,
2.985631227493286,
-2.2109131813049316,
0.4897245764732361,
-0.9589419960975647,
0.4612155854701996,
2.5896759033203125,
0.3637409210205078,
3.290370225906372,
-0.8352606296539307,
-0.8434194326400757,
-5.34195613861084,
-3.4427998065948486,
2.6491568088531494,
1.8150891065597534,
-1.4421552419662476,
1.1361784934997559,
-0.7787467837333679,
-3.8555426597595215,
-2.4673306941986084,
-1.394074559211731,
-0.14918382465839386,
3.739903450012207,
-1.5827677249908447,
2.7378718852996826,
-0.5845848917961121,
8.43832015991211,
4.681511402130127,
4.540197849273682,
0.5192647576332092,
9.154011726379395,
5.119352340698242,
4.983821392059326,
2.6089601516723633,
4.969547748565674,
3.5975594520568848,
23.08266258239746,
-2.7487246990203857,
3.586392402648926,
1.721060037612915,
1.5361043214797974,
-0.09225545078516006,
0.9231963157653809,
1.0670558214187622,
2.5373518466949463,
3.4394421577453613,
4.816962242126465,
-4.113401412963867,
-2.359571695327759,
-1.250556230545044,
1.6705644130706787,
0.8198727369308472,
-4.548575401306152,
-2.211716890335083,
2.8640294075012207,
0.07712188363075256
],
"name": "fc_0.tmp_1",
"shape": [
1000
]
},
]
}
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
{
"ops": [
{
"attrs": {
"bias": 0.0,
"bias_after_scale": true,
"scale": 1.0
},
"inputs": {
"X": [
"fc_0.tmp_2"
]
},
"outputs": {
"Out": [
"scale_0.tmp_0"
]
},
"type": "scale"
}
],
"vars": [
{
"data": [
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.0,
1.6504194778766687e-16
],
"name": "fc_0.tmp_2",
"persistable": 0,
"shape": [
10
]
},
{
"data": [
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.6038109389511792e-28,
1.0,
1.6504194778766687e-16
],
"name": "scale_0.tmp_0",
"persistable": 0,
"shape": [
10
]
}
]
}
{
"ops": [
{
"attrs": {
"data_format": "AnyLayout",
"is_test": 1,
"use_cudnn": false,
"use_mkldnn": false
},
"inputs": {
"X": [
"softmax_0.tmp_0"
]
},
"outputs": {
"Out": [
"softmax_0.tmp_2"
]
},
"type": "softmax"
}
],
"vars": [
{
"data":
[0.0320586 , 0.08714432, 0.23688282, 0.64391426]
,
"name": "softmax_0.tmp_2",
"persistable": 0,
"shape": [2, 3, 4]
},
{
"data": [2.0, 3.0, 4.0, 5.0]
,
"name": "softmax_0.tmp_0",
"persistable": 0,
"shape": [2, 3, 4]
}
]
}
/*!
diff v2.0.1
Software License Agreement (BSD License)
Copyright (c) 2009-2015, Kevin Decker <kpdecker@gmail.com>
All rights reserved.
Redistribution and use of this software in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other
materials provided with the distribution.
* Neither the name of Kevin Decker nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@license
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define(factory);
else if(typeof exports === 'object')
exports["JsDiff"] = factory();
else
root["JsDiff"] = factory();
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
/* See LICENSE file for terms of use */
/*
* Text diff implementation.
*
* This library supports the following APIS:
* JsDiff.diffChars: Character by character diff
* JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
* JsDiff.diffLines: Line based diff
*
* JsDiff.diffCss: Diff targeted at CSS content
*
* These methods are based on the implementation proposed in
* "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
* http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
*/
'use strict';
exports.__esModule = true;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _diffBase = __webpack_require__(1);
var _diffBase2 = _interopRequireDefault(_diffBase);
var _diffCharacter = __webpack_require__(3);
var _diffWord = __webpack_require__(4);
var _diffLine = __webpack_require__(5);
var _diffSentence = __webpack_require__(6);
var _diffCss = __webpack_require__(7);
var _diffJson = __webpack_require__(8);
var _patchApply = __webpack_require__(9);
var _patchCreate = __webpack_require__(10);
var _convertDmp = __webpack_require__(12);
var _convertXml = __webpack_require__(13);
exports.Diff = _diffBase2['default'];
exports.diffChars = _diffCharacter.diffChars;
exports.diffWords = _diffWord.diffWords;
exports.diffWordsWithSpace = _diffWord.diffWordsWithSpace;
exports.diffLines = _diffLine.diffLines;
exports.diffTrimmedLines = _diffLine.diffTrimmedLines;
exports.diffSentences = _diffSentence.diffSentences;
exports.diffCss = _diffCss.diffCss;
exports.diffJson = _diffJson.diffJson;
exports.structuredPatch = _patchCreate.structuredPatch;
exports.createTwoFilesPatch = _patchCreate.createTwoFilesPatch;
exports.createPatch = _patchCreate.createPatch;
exports.applyPatch = _patchApply.applyPatch;
exports.convertChangesToDMP = _convertDmp.convertChangesToDMP;
exports.convertChangesToXML = _convertXml.convertChangesToXML;
exports.canonicalize = _diffJson.canonicalize;
/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports['default'] = Diff;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _utilMap = __webpack_require__(2);
var _utilMap2 = _interopRequireDefault(_utilMap);
function Diff(ignoreWhitespace) {
this.ignoreWhitespace = ignoreWhitespace;
}
Diff.prototype = {
diff: function diff(oldString, newString, callback) {
var self = this;
function done(value) {
if (callback) {
setTimeout(function () {
callback(undefined, value);
}, 0);
return true;
} else {
return value;
}
}
// Allow subclasses to massage the input prior to running
oldString = this.castInput(oldString);
newString = this.castInput(newString);
// Handle the identity case (this is due to unrolling editLength == 0
if (newString === oldString) {
return done([{ value: newString }]);
}
if (!newString) {
return done([{ value: oldString, removed: true }]);
}
if (!oldString) {
return done([{ value: newString, added: true }]);
}
newString = this.removeEmpty(this.tokenize(newString));
oldString = this.removeEmpty(this.tokenize(oldString));
var newLen = newString.length,
oldLen = oldString.length;
var editLength = 1;
var maxEditLength = newLen + oldLen;
var bestPath = [{ newPos: -1, components: [] }];
// Seed editLength = 0, i.e. the content starts with the same values
var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
// Identity per the equality and tokenizer
return done([{ value: newString.join('') }]);
}
// Main worker method. checks all permutations of a given edit length for acceptance.
function execEditLength() {
for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
var basePath = undefined;
var addPath = bestPath[diagonalPath - 1],
removePath = bestPath[diagonalPath + 1],
_oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
if (addPath) {
// No one else is going to attempt to use this value, clear it
bestPath[diagonalPath - 1] = undefined;
}
var canAdd = addPath && addPath.newPos + 1 < newLen,
canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
if (!canAdd && !canRemove) {
// If this path is a terminal then prune
bestPath[diagonalPath] = undefined;
continue;
}
// Select the diagonal that we want to branch from. We select the prior
// path whose position in the new string is the farthest from the origin
// and does not pass the bounds of the diff graph
if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
basePath = clonePath(removePath);
self.pushComponent(basePath.components, undefined, true);
} else {
basePath = addPath; // No need to clone, we've pulled it from the list
basePath.newPos++;
self.pushComponent(basePath.components, true, undefined);
}
_oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
// If we have hit the end of both strings, then we are done
if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
return done(buildValues(basePath.components, newString, oldString, self.useLongestToken));
} else {
// Otherwise track this path as a potential candidate and continue.
bestPath[diagonalPath] = basePath;
}
}
editLength++;
}
// Performs the length of edit iteration. Is a bit fugly as this has to support the
// sync and async mode which is never fun. Loops over execEditLength until a value
// is produced.
if (callback) {
(function exec() {
setTimeout(function () {
// This should not happen, but we want to be safe.
/* istanbul ignore next */
if (editLength > maxEditLength) {
return callback();
}
if (!execEditLength()) {
exec();
}
}, 0);
})();
} else {
while (editLength <= maxEditLength) {
var ret = execEditLength();
if (ret) {
return ret;
}
}
}
},
pushComponent: function pushComponent(components, added, removed) {
var last = components[components.length - 1];
if (last && last.added === added && last.removed === removed) {
// We need to clone here as the component clone operation is just
// as shallow array clone
components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };
} else {
components.push({ count: 1, added: added, removed: removed });
}
},
extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
var newLen = newString.length,
oldLen = oldString.length,
newPos = basePath.newPos,
oldPos = newPos - diagonalPath,
commonCount = 0;
while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
newPos++;
oldPos++;
commonCount++;
}
if (commonCount) {
basePath.components.push({ count: commonCount });
}
basePath.newPos = newPos;
return oldPos;
},
equals: function equals(left, right) {
var reWhitespace = /\S/;
return left === right || this.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
},
removeEmpty: function removeEmpty(array) {
var ret = [];
for (var i = 0; i < array.length; i++) {
if (array[i]) {
ret.push(array[i]);
}
}
return ret;
},
castInput: function castInput(value) {
return value;
},
tokenize: function tokenize(value) {
return value.split('');
}
};
function buildValues(components, newString, oldString, useLongestToken) {
var componentPos = 0,
componentLen = components.length,
newPos = 0,
oldPos = 0;
for (; componentPos < componentLen; componentPos++) {
var component = components[componentPos];
if (!component.removed) {
if (!component.added && useLongestToken) {
var value = newString.slice(newPos, newPos + component.count);
value = _utilMap2['default'](value, function (value, i) {
var oldValue = oldString[oldPos + i];
return oldValue.length > value.length ? oldValue : value;
});
component.value = value.join('');
} else {
component.value = newString.slice(newPos, newPos + component.count).join('');
}
newPos += component.count;
// Common case
if (!component.added) {
oldPos += component.count;
}
} else {
component.value = oldString.slice(oldPos, oldPos + component.count).join('');
oldPos += component.count;
// Reverse add and remove so removes are output first to match common convention
// The diffing algorithm is tied to add then remove output and this is the simplest
// route to get the desired output with minimal overhead.
if (componentPos && components[componentPos - 1].added) {
var tmp = components[componentPos - 1];
components[componentPos - 1] = components[componentPos];
components[componentPos] = tmp;
}
}
}
return components;
}
function clonePath(path) {
return { newPos: path.newPos, components: path.components.slice(0) };
}
module.exports = exports['default'];
/***/ },
/* 2 */
/***/ function(module, exports) {
// Following this pattern to make sure the ignore next is in the correct place after babel builds
"use strict";
exports.__esModule = true;
exports["default"] = map;
/* istanbul ignore next */
function map(arr, mapper, that) {
if (Array.prototype.map) {
return Array.prototype.map.call(arr, mapper, that);
}
var other = new Array(arr.length);
for (var i = 0, n = arr.length; i < n; i++) {
other[i] = mapper.call(that, arr[i], i, arr);
}
return other;
}
module.exports = exports["default"];
/***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports.diffChars = diffChars;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _base = __webpack_require__(1);
var _base2 = _interopRequireDefault(_base);
var characterDiff = new _base2['default']();
exports.characterDiff = characterDiff;
function diffChars(oldStr, newStr, callback) {
return characterDiff.diff(oldStr, newStr, callback);
}
/***/ },
/* 4 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports.diffWords = diffWords;
exports.diffWordsWithSpace = diffWordsWithSpace;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _base = __webpack_require__(1);
// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode
//
// Ranges and exceptions:
// Latin-1 Supplement, 0080–00FF
// - U+00D7 × Multiplication sign
// - U+00F7 ÷ Division sign
// Latin Extended-A, 0100–017F
// Latin Extended-B, 0180–024F
// IPA Extensions, 0250–02AF
// Spacing Modifier Letters, 02B0–02FF
// - U+02C7 ˇ &#711; Caron
// - U+02D8 ˘ &#728; Breve
// - U+02D9 ˙ &#729; Dot Above
// - U+02DA ˚ &#730; Ring Above
// - U+02DB ˛ &#731; Ogonek
// - U+02DC ˜ &#732; Small Tilde
// - U+02DD ˝ &#733; Double Acute Accent
// Latin Extended Additional, 1E00–1EFF
var _base2 = _interopRequireDefault(_base);
var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
var wordDiff = new _base2['default'](true);
exports.wordDiff = wordDiff;
var wordWithSpaceDiff = new _base2['default']();
exports.wordWithSpaceDiff = wordWithSpaceDiff;
wordDiff.tokenize = wordWithSpaceDiff.tokenize = function (value) {
var tokens = value.split(/(\s+|\b)/);
// Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.
for (var i = 0; i < tokens.length - 1; i++) {
// If we have an empty string in the next field and we have only word chars before and after, merge
if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
tokens[i] += tokens[i + 2];
tokens.splice(i + 1, 2);
i--;
}
}
return tokens;
};
function diffWords(oldStr, newStr, callback) {
return wordDiff.diff(oldStr, newStr, callback);
}
function diffWordsWithSpace(oldStr, newStr, callback) {
return wordWithSpaceDiff.diff(oldStr, newStr, callback);
}
/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports.diffLines = diffLines;
exports.diffTrimmedLines = diffTrimmedLines;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _base = __webpack_require__(1);
var _base2 = _interopRequireDefault(_base);
var lineDiff = new _base2['default']();
exports.lineDiff = lineDiff;
var trimmedLineDiff = new _base2['default']();
exports.trimmedLineDiff = trimmedLineDiff;
trimmedLineDiff.ignoreTrim = true;
lineDiff.tokenize = trimmedLineDiff.tokenize = function (value) {
var retLines = [],
lines = value.split(/^/m);
for (var i = 0; i < lines.length; i++) {
var line = lines[i],
lastLine = lines[i - 1],
lastLineLastChar = lastLine && lastLine[lastLine.length - 1];
// Merge lines that may contain windows new lines
if (line === '\n' && lastLineLastChar === '\r') {
retLines[retLines.length - 1] = retLines[retLines.length - 1].slice(0, -1) + '\r\n';
} else {
if (this.ignoreTrim) {
line = line.trim();
// add a newline unless this is the last line.
if (i < lines.length - 1) {
line += '\n';
}
}
retLines.push(line);
}
}
return retLines;
};
function diffLines(oldStr, newStr, callback) {
return lineDiff.diff(oldStr, newStr, callback);
}
function diffTrimmedLines(oldStr, newStr, callback) {
return trimmedLineDiff.diff(oldStr, newStr, callback);
}
/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports.diffSentences = diffSentences;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _base = __webpack_require__(1);
var _base2 = _interopRequireDefault(_base);
var sentenceDiff = new _base2['default']();
exports.sentenceDiff = sentenceDiff;
sentenceDiff.tokenize = function (value) {
return value.split(/(\S.+?[.!?])(?=\s+|$)/);
};
function diffSentences(oldStr, newStr, callback) {
return sentenceDiff.diff(oldStr, newStr, callback);
}
/***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports.diffCss = diffCss;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _base = __webpack_require__(1);
var _base2 = _interopRequireDefault(_base);
var cssDiff = new _base2['default']();
exports.cssDiff = cssDiff;
cssDiff.tokenize = function (value) {
return value.split(/([{}:;,]|\s+)/);
};
function diffCss(oldStr, newStr, callback) {
return cssDiff.diff(oldStr, newStr, callback);
}
/***/ },
/* 8 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports.diffJson = diffJson;
exports.canonicalize = canonicalize;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _base = __webpack_require__(1);
var _base2 = _interopRequireDefault(_base);
var _line = __webpack_require__(5);
var objectPrototypeToString = Object.prototype.toString;
var jsonDiff = new _base2['default']();
// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
exports.jsonDiff = jsonDiff;
jsonDiff.useLongestToken = true;
jsonDiff.tokenize = _line.lineDiff.tokenize;
jsonDiff.castInput = function (value) {
return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), undefined, ' ');
};
jsonDiff.equals = function (left, right) {
return _base2['default'].prototype.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
};
function diffJson(oldObj, newObj, callback) {
return jsonDiff.diff(oldObj, newObj, callback);
}
// This function handles the presence of circular references by bailing out when encountering an
// object that is already on the "stack" of items being processed.
function canonicalize(obj, stack, replacementStack) {
stack = stack || [];
replacementStack = replacementStack || [];
var i = undefined;
for (i = 0; i < stack.length; i += 1) {
if (stack[i] === obj) {
return replacementStack[i];
}
}
var canonicalizedObj = undefined;
if ('[object Array]' === objectPrototypeToString.call(obj)) {
stack.push(obj);
canonicalizedObj = new Array(obj.length);
replacementStack.push(canonicalizedObj);
for (i = 0; i < obj.length; i += 1) {
canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);
}
stack.pop();
replacementStack.pop();
} else if (typeof obj === 'object' && obj !== null) {
stack.push(obj);
canonicalizedObj = {};
replacementStack.push(canonicalizedObj);
var sortedKeys = [],
key = undefined;
for (key in obj) {
/* istanbul ignore else */
if (obj.hasOwnProperty(key)) {
sortedKeys.push(key);
}
}
sortedKeys.sort();
for (i = 0; i < sortedKeys.length; i += 1) {
key = sortedKeys[i];
canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);
}
stack.pop();
replacementStack.pop();
} else {
canonicalizedObj = obj;
}
return canonicalizedObj;
}
/***/ },
/* 9 */
/***/ function(module, exports) {
'use strict';
exports.__esModule = true;
exports.applyPatch = applyPatch;
function applyPatch(oldStr, uniDiff) {
var diffstr = uniDiff.split('\n'),
hunks = [],
i = 0,
remEOFNL = false,
addEOFNL = false;
// Skip to the first change hunk
while (i < diffstr.length && !/^@@/.test(diffstr[i])) {
i++;
}
// Parse the unified diff
for (; i < diffstr.length; i++) {
if (diffstr[i][0] === '@') {
var chnukHeader = diffstr[i].split(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);
hunks.unshift({
start: chnukHeader[3],
oldlength: +chnukHeader[2],
removed: [],
newlength: chnukHeader[4],
added: []
});
} else if (diffstr[i][0] === '+') {
hunks[0].added.push(diffstr[i].substr(1));
} else if (diffstr[i][0] === '-') {
hunks[0].removed.push(diffstr[i].substr(1));
} else if (diffstr[i][0] === ' ') {
hunks[0].added.push(diffstr[i].substr(1));
hunks[0].removed.push(diffstr[i].substr(1));
} else if (diffstr[i][0] === '\\') {
if (diffstr[i - 1][0] === '+') {
remEOFNL = true;
} else if (diffstr[i - 1][0] === '-') {
addEOFNL = true;
}
}
}
// Apply the diff to the input
var lines = oldStr.split('\n');
for (i = hunks.length - 1; i >= 0; i--) {
var hunk = hunks[i];
// Sanity check the input string. Bail if we don't match.
for (var j = 0; j < hunk.oldlength; j++) {
if (lines[hunk.start - 1 + j] !== hunk.removed[j]) {
return false;
}
}
Array.prototype.splice.apply(lines, [hunk.start - 1, hunk.oldlength].concat(hunk.added));
}
// Handle EOFNL insertion/removal
if (remEOFNL) {
while (!lines[lines.length - 1]) {
lines.pop();
}
} else if (addEOFNL) {
lines.push('');
}
return lines.join('\n');
}
/***/ },
/* 10 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
exports.structuredPatch = structuredPatch;
exports.createTwoFilesPatch = createTwoFilesPatch;
exports.createPatch = createPatch;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _diffPatch = __webpack_require__(11);
var _utilMap = __webpack_require__(2);
var _utilMap2 = _interopRequireDefault(_utilMap);
function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
if (!options) {
options = { context: 4 };
}
var diff = _diffPatch.patchDiff.diff(oldStr, newStr);
diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier
function contextLines(lines) {
return _utilMap2['default'](lines, function (entry) {
return ' ' + entry;
});
}
var hunks = [];
var oldRangeStart = 0,
newRangeStart = 0,
curRange = [],
oldLine = 1,
newLine = 1;
var _loop = function (i) {
var current = diff[i],
lines = current.lines || current.value.replace(/\n$/, '').split('\n');
current.lines = lines;
if (current.added || current.removed) {
// If we have previous context, start with that
if (!oldRangeStart) {
var prev = diff[i - 1];
oldRangeStart = oldLine;
newRangeStart = newLine;
if (prev) {
curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
oldRangeStart -= curRange.length;
newRangeStart -= curRange.length;
}
}
// Output our changes
curRange.push.apply(curRange, _utilMap2['default'](lines, function (entry) {
return (current.added ? '+' : '-') + entry;
}));
// Track the updated file position
if (current.added) {
newLine += lines.length;
} else {
oldLine += lines.length;
}
} else {
// Identical context lines. Track line changes
if (oldRangeStart) {
// Close out any changes that have been output (or join overlapping)
if (lines.length <= options.context * 2 && i < diff.length - 2) {
// Overlapping
curRange.push.apply(curRange, contextLines(lines));
} else {
// end the range and output
var contextSize = Math.min(lines.length, options.context);
curRange.push.apply(curRange, contextLines(lines.slice(0, contextSize)));
var hunk = {
oldStart: oldRangeStart,
oldLines: oldLine - oldRangeStart + contextSize,
newStart: newRangeStart,
newLines: newLine - newRangeStart + contextSize,
lines: curRange
};
if (i >= diff.length - 2 && lines.length <= options.context) {
// EOF is inside this hunk
var oldEOFNewline = /\n$/.test(oldStr);
var newEOFNewline = /\n$/.test(newStr);
if (lines.length == 0 && !oldEOFNewline) {
// special case: old has no eol and no trailing context; no-nl can end up before adds
curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
} else if (!oldEOFNewline || !newEOFNewline) {
curRange.push('\\ No newline at end of file');
}
}
hunks.push(hunk);
oldRangeStart = 0;
newRangeStart = 0;
curRange = [];
}
}
oldLine += lines.length;
newLine += lines.length;
}
};
for (var i = 0; i < diff.length; i++) {
_loop(i);
}
return {
oldFileName: oldFileName, newFileName: newFileName,
oldHeader: oldHeader, newHeader: newHeader,
hunks: hunks
};
}
function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
var ret = [];
if (oldFileName == newFileName) {
ret.push('Index: ' + oldFileName);
}
ret.push('===================================================================');
ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
for (var i = 0; i < diff.hunks.length; i++) {
var hunk = diff.hunks[i];
ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
ret.push.apply(ret, hunk.lines);
}
return ret.join('\n') + '\n';
}
function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
}
/***/ },
/* 11 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
exports.__esModule = true;
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _base = __webpack_require__(1);
var _base2 = _interopRequireDefault(_base);
var patchDiff = new _base2['default']();
exports.patchDiff = patchDiff;
patchDiff.tokenize = function (value) {
var ret = [],
linesAndNewlines = value.split(/(\n|\r\n)/);
// Ignore the final empty token that occurs if the string ends with a new line
if (!linesAndNewlines[linesAndNewlines.length - 1]) {
linesAndNewlines.pop();
}
// Merge the content and line separators into single tokens
for (var i = 0; i < linesAndNewlines.length; i++) {
var line = linesAndNewlines[i];
if (i % 2) {
ret[ret.length - 1] += line;
} else {
ret.push(line);
}
}
return ret;
};
/***/ },
/* 12 */
/***/ function(module, exports) {
// See: http://code.google.com/p/google-diff-match-patch/wiki/API
"use strict";
exports.__esModule = true;
exports.convertChangesToDMP = convertChangesToDMP;
function convertChangesToDMP(changes) {
var ret = [],
change = undefined,
operation = undefined;
for (var i = 0; i < changes.length; i++) {
change = changes[i];
if (change.added) {
operation = 1;
} else if (change.removed) {
operation = -1;
} else {
operation = 0;
}
ret.push([operation, change.value]);
}
return ret;
}
/***/ },
/* 13 */
/***/ function(module, exports) {
'use strict';
exports.__esModule = true;
exports.convertChangesToXML = convertChangesToXML;
function convertChangesToXML(changes) {
var ret = [];
for (var i = 0; i < changes.length; i++) {
var change = changes[i];
if (change.added) {
ret.push('<ins>');
} else if (change.removed) {
ret.push('<del>');
}
ret.push(escapeHTML(change.value));
if (change.added) {
ret.push('</ins>');
} else if (change.removed) {
ret.push('</del>');
}
}
return ret.join('');
}
function escapeHTML(s) {
var n = s;
n = n.replace(/&/g, '&amp;');
n = n.replace(/</g, '&lt;');
n = n.replace(/>/g, '&gt;');
n = n.replace(/"/g, '&quot;');
return n;
}
/***/ }
/******/ ])
});
;
\ No newline at end of file
import 'babel-polyfill';
import Paddle from '../../src/paddle/paddle';
const unitPath = {
'conv2d': 'model.test.conv2d.json',
'batchnorm': 'model.test.batchnorm.json',
'mul': 'model.test.mul.json',
'pool2d': 'model.test.pool2d.json',
'relu': 'model.test.relu.json',
'scale': 'model.test.scale.json',
'softmax': 'model.test.softmax.json',
'relu6' : 'model.test.relu6.json'
};
// 制定运行的 op
const modelType = 'softmax';
const unitData = unitPath[modelType];
let Diff = require('./diff');
let datas;
let otherResult;
let output
async function run() {
const path = 'test/unitData';
const MODEL_CONFIG = {
dir: `/${path}/`, // 存放模型的文件夹
main: unitData, // 主文件
};
const paddle = new Paddle({
urlConf: MODEL_CONFIG,
options: {
test: true
}
});
let model = await paddle.load();
datas = model.graph.data;
output = deepCopy(datas);
// 测试单元
model.graph.weightMap.forEach(op => {
const type = op.type;
if (type !== 'feed' && type !== 'fetch') {
console.log(op.type);
model.graph.buildOpData(op);
}
});
const executor = model.graph.weightMap;
let inst = model.graph.execute_(executor[0]);
let result = model.graph.inst.read();
console.dir(['result', result]);
var one = model.graph.inst.read();
// var other = getResult('conv2d');
console.log('one');
console.log(one);
console.log('other');
}
run();
function deepCopy (data) {
return JSON.parse(JSON.stringify(data));
}
// let output = deepCopy(datas);
let getTensor = function(id, times = 1) {
let find = 0;
let data = datas.ops.filter((item, idx) => {
if (id === item.type) {
++find;
if (find === times) {
return true;
}
}
});
return getInputs(data[0]);
};
let getInputs = function(data) {
Object.keys(data.inputs).forEach(function(key){
data.inputs[key] = getValue(data.inputs[key][0], datas);
});
Object.keys(data.outputs).forEach(function(key){
let out = getValue(data.outputs[key][0], datas)
data.outputs[key] = out;
otherResult = out[0].data;
});
return data;
};
let getResult = function(id) {
let data = output.ops.filter((item, idx) => {
if (id === item.type) {
return true;
}
});
return getoutputs(data[0]);
};
let getoutputs = function(data) {
let otherResult;
Object.keys(data.outputs).forEach(function(key){
let out = getValue(data.outputs[key][0], output);
otherResult = out[0].data;
});
return otherResult;
};
let getValue = function(name, datas) {
return datas.vars.filter((item, idx) => {
if (name === item.name) {
return item;
}
});
};
// // 测试单元
// let item = getTensor('conv2d');
let func = function (model) {
// console.log(other);
// var one = inst.read();
// var other = getResult('softmax');
// var color ='';
// var span = null;
// var diff = Diff.diffChars(one.toString(), other.toString()),
// display = document.getElementById('display'),
// fragment = document.createDocumentFragment();
//
// diff.forEach(function(part){
// // green for additions, red for deletions
// // grey for common parts
// color = part.added ? 'green' :
// part.removed ? 'red' : 'grey';
// span = document.createElement('span');
// span.style.color = color;
// span.appendChild(document
// .createTextNode(part.value));
// fragment.appendChild(span);
// });
//
// display.appendChild(fragment);
};
import 'babel-polyfill';
import units from './units/units';
let qs = require('qs');
/**
* @file 入口文件
* @author wangqun@baidu.com
*
*/
// 引入 op
const FSHADER_CON2D = require('../src/shader/f_elementwise_conv2d3_shader.c');
const shapeA = [1, 3, 256, 256];
const shapeB = [3];
const imgUrl = require('./data/banana.jpeg');
let shapeAData;
let shapeBData;
let inst;
const matrix = units.mockOrigin();
const filter = units.mockFilter();
// 原始张量,上下左右1个单位的padding,步长是1
let conf = {
'filter_size_width': 3,
'filter_size_height': 3,
'origin_size_width': matrix.sx,
'origin_size_height': matrix.sx,
'out_size_width': 3,
'out_size_height': 3,
'stride_horizontal': 1,
'stride_vertical': 1,
'pad_left': 1,
'pad_top': 1,
'dilation_horizontal': 2,
'dilation_vertical': 2
}
units.init(conf, FSHADER_CON2D).then(instance => {
if (!instance || typeof instance === 'string') {
throw new Error(instance || '不支持float texture');
}
inst = instance;
}).then(() => {
console.dir(['卷积核', filter]);
console.dir(['origin data', matrix.data]);
// 执行conv2d
inst.compute(filter, matrix.data, 'conv2d');
}).then(() => {
// 读取结果
const result = inst.read();
console.dir(['conv2d的执行结果', result]);
let input = {
filter: filter,
origin: matrix.data,
};
Object.assign(input, conf);
console.dir(['完整input', input]);
// console.dir(['完整输入和输出', params]);
inst.getResult('pool2d', input, result);
}).catch(err => {
console.log('-----------error---------' + err);
});
<!DOCYTPE html>
<html>
<head>
<meta charset="utf-8">
<title>paddle web unitTest</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<style>
body {
margin: 0;
padding: 0;
}
.paddle-web-wrapper {
position: relative;
width: 100%;
}
.paddle-web-title {
width: 100%;
background-color: blueviolet;
height: 44px;
text-align: center;
color: #fff;
line-height: 44px;
font-size: 18px;
}
.paddle-web-body {
}
#paddle-web-unit-list {
}
#paddle-web-unit-list li {
}
.unit-li-name {
font-size: 16px;
margin: 5px;
font-weight: 700;
letter-spacing: 0;
line-height: 14px;
}
.unit-li-assert {
font-size: 16px;
margin: 5px;
font-weight: 700;
letter-spacing: 0;
line-height: 14px;
}
.pass {
color: #34B458;
}
.no-pass {
color: #b4231b;
}
.unit-li-diff {
margin: 5px;
border: 1px dotted #f71111;
}
p {
word-wrap: break-word;
word-break: normal;
}
span {
word-wrap: break-word;
word-break: normal;
}
#display {
width: 100%;
}
</style>
<!--<script src="unitTest.es6"></script>-->
<!--<script src="testUtils/diff.js"></script>-->
<script src="testUtils/testUtils.es6"></script>
</head>
<body>
<div class="paddle-web-wrapper">
<div class="paddle-web-title">
paddle Web Unit Test
</div>
<div class="paddle-web-body">
<ul id="paddle-web-unit-list">
<li class="unit-li">
<div class="unit-li-name">pool</div>
<div class="unit-li-assert pass">pass</div>
</li>
<li class="unit-li">
<div class="unit-li-name">relu</div>
<div class="unit-li-assert pass">pass</div>
</li>
<li class="unit-li">
<div class="unit-li-name">prelu</div>
<div class="unit-li-assert pass">pass</div>
</li>
<li class="unit-li">
<div class="unit-li-name">softmax</div>
<div class="unit-li-assert pass">pass</div>
</li>
<li class="unit-li">
<div class="unit-li-name">dropout</div>
<div class="unit-li-assert pass">pass</div>
</li>
<li class="unit-li">
<div class="unit-li-name">conv2d</div>
<div class="unit-li-assert pass">pass</div>
</li>
</ul>
<div id="display"></div>
</div>
</div>
</body>
</html>
\ No newline at end of file
import Utils from '../../src/utils/utils';
import Gpu from '../../src/gpu/gpu';
import Matrix from '../../src/utils/dims';
import axios from 'axios';
let qs = require('qs');
/**
* @file gpu运行时
* @author wangqun
*
*/
// v_shader.c表示计算容器
const VSHADER = require('../../src/shader/v_shader.c');
export default {
/**
* 初始化op
* @param {Object} opts 运行时参数,包含el:canvas,dim: 256
* @return {Object} this 实例对象
*/
async init(opts = {}, opShader) {
const gpu = this.gpu = new Gpu(opts);
if (gpu.isFloatingTexture()) {
let texture = gpu.makeTexure(WebGLRenderingContext.FLOAT, null);
let framebuffer = gpu.attachFrameBuffer(texture);
let bufferStatus = gpu.frameBufferIsComplete();
if (bufferStatus.isComplete) {
console.log(bufferStatus.isComplete);
// 获取shader
const vshaderCode = await Utils.loadShader(VSHADER);
let fshaderCode = await Utils.loadShader(opShader);
fshaderCode = Utils.populateData('conv2d', fshaderCode, opts);
gpu.create(vshaderCode, fshaderCode);
return this;
} else {
return bufferStatus.message;
}
} else {
return null;
}
},
/**
* 计算op
* @param bufferA
* @param bufferB
*/
compute(bufferA, bufferB, type) {
this.gpu.render(bufferA, bufferB, type);
},
/**
* 读取op计算结果, 并返回数据
*/
read() {
return this.gpu.compute();
},
// 生成feed数据
feed(pixelData, size) {
return Utils.shapeData(pixelData, size);
},
// mock生成shapeB的数据
mockShapeB(shapeA, shapeB) {
return Utils.mock(shapeA, shapeB);
},
// mock origin 1 * 5 * 5
mockOrigin() {
return new Matrix({
sx: 5,
sy: 5,
depth: 4
});
},
// mock filter 1 * 3 * 3
mockFilter() {
return new Float32Array([1.0, 1.0, 0.0, 0.0, -2.0, 0.0, 1.0, -3.0, 1.0]);
},
// 更新op
updateOp(name) {
// this.gpu.updateShader();
},
// get paddle mobile result
getResult(name, input, output) {
if (name) {
let that = this;
axios.defaults.withCredentials = false;
axios.defaults.headers = {
'Content-type': 'application/x-www-form-urlencoded'
}
axios.post('http://yq01-paddle-mobile.epc.baidu.com:8088/uniTest', qs.stringify({
name: name,
input: JSON.stringify(input, function (key, value) {
if (value.constructor === Float32Array) {
return that.formatData(value);
}else {
return that.formatData(value);
}
}),
output: JSON.stringify(output, function (key, value) {
return that.formatData(value);
})
},{ indices: false }))
.then(function (response) {
if (response.status === 200) {
that.displayResult(response.data);
}
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
},
displayResult(res) {
if (res.name) {
let assert = (res.correct == 1? 'Pass' : 'Not pass');
let passCls = (res.correct == 1? 'pass' : 'no-pass');
if (res.correct === 1) {
let unitHtml = '<li class="unit-li"><div class="unit-li-name">' + res.name + '</div>' +
'<div class="unit-li-assert">' + assert + '</div>'
'</li>';
let oli = document.createElement('li');
oli.innerHTML = unitHtml;
document.getElementById('paddle-web-unit-list').appendChild(oli);
}
else if (res.correct === 0) {
let serverData = res.server_data;
let unitHtml = '<li class="unit-li"><div class="unit-li-name">' + res.name + '</div>' +
'<div class="unit-li-assert ' + passCls + '">' + assert + '</div>' +
'<div class="unit-li-diff"><p>' + serverData + '</p></div>'
'</li>';
let oli = document.createElement('li');
oli.innerHTML = unitHtml;
document.getElementById('paddle-web-unit-list').appendChild(oli);
}
}
},
formatData(list) {
if (list.constructor === Float32Array) {
return '[' + list.toString() + ']';
}
else {
return list;
}
},
// 释放资源
dispose() {
this.gpu.dispose();
}
};
/**
* file tools/logger logger工具
* author saniac(snailsword@gmail.com)
*/
export default class Logger {
constructor() {
this.timeTable = {};
this.countTable = {};
this.duringTable = {};
this.lastStopTable = {};
}
start(key) {
let arr = this.timeTable[key];
if (!arr) {
arr = [{}];
}
else {
if (!arr[arr.length - 1].endTime) {
console.error('[logger] key:' + key + ' duplicate start logger');
return;
}
arr.push({});
}
arr[arr.length - 1].startTime = this.time;
this.timeTable[key] = arr;
return this;
}
end(key) {
// console.log(this.timeTable[key]);
if (!this.timeTable[key]) {
console.log(this.timeTable[key]);
console.error('[logger] key:' + key + ' no matching start logger');
return;
}
let currentObj = this.timeTable[key][this.timeTable[key].length - 1];
if (currentObj.endTime) {
console.error('[logger] key:' + key + ' duplicate end logger');
return;
}
currentObj.endTime = this.time;
currentObj.during = currentObj.endTime - currentObj.startTime;
return this;
}
// 数次数
count(key) {
if (this.countTable[key]) {
this.countTable[key]++;
}
else {
this.countTable[key] = 1;
}
return this;
}
// 看每次执行的时间间隔
during(key) {
if (this.lastStopTable[key]) {
this.duringTable[key].push(this.time - this.lastStopTable[key]);
this.lastStopTable[key] = this.time;
}
else {
this.lastStopTable[key] = this.time;
this.duringTable[key] = [];
}
return this;
}
get time() {
return +new Date().getTime();
}
get statistics() {
// time
let timeResult = [];
let item;
for (let key in this.timeTable) {
item = this.timeTable[key];
let len = item.length;
let max = 0;
let min = Number.MAX_VALUE;
let sum = 0;
for (let i = 0; i < len; i++) {
max = Math.max(max, item[i].during);
min = Math.min(min, item[i].during);
sum += item[i].during;
}
timeResult.push({
name: key,
length: len,
avg: sum / len,
max,
min
});
}
console.table(timeResult);
return {timeResult};
}
}
#coding:utf-8
#! /bin/python
# 把文本文件转为二进制文件的工具
import os
import struct
import random
import math
class BinaryFileConverter:
def __init__(self, delimiter, ignorChar, ignorLine, types, originDir, resultDir, ext, formatter, dotPrintRatio, merge):
# 每行中数字间的分隔符
self.delimiter = delimiter
# 需要忽略的符号
self.ignorChar = ignorChar
# 需要忽略的行
self.ignorLine = ignorLine
# 需要转的文件
self.types = types
# 转之前的
self.originDir = originDir
# 转之后的文件夹
self.resultDir = resultDir
# 转换后的后缀
self.ext = ext
# 格式 可选内容参考:https://docs.python.org/3/library/struct.html?#format-characters
self.formatter = formatter
# 打点率
self.dotPrintRatio = dotPrintRatio
# 合成几个文件 0代表不合并
self.merge = merge
# 存合并的数据的文件
self.mergedResultFileName = resultDir + '/mergedData.dat'
# 计数器
self.i = 0
def dfs(self, rootDir):
for item in sorted(os.listdir(rootDir)):
path = os.path.join(rootDir, item)
if os.path.isdir(path):
self.dfs(path)
else:
self.process(path)
# print(path)
def process(self, path):
(curFile, curType) = os.path.splitext(path)
if curType in self.types:
originFile = open(path, 'r')
if not self.merge:
newFilePath = self.resultDir + curFile[len(self.originDir):] + self.ext
newFileDir = os.path.dirname(newFilePath)
if not os.path.exists(newFileDir):
os.makedirs(newFileDir)
self.resultFile = open(newFilePath ,'wb')
print('开始写啦' + path)
self.writeToFile(originFile, self.resultFile)
if not self.merge:
self.resultFile.close()
print('\n')
print('写完啦' + path)
def writeToFile(self, originFile, resultFile):
lines = originFile.readlines()
for line in lines:
if (line in self.ignorLine) or (line.strip() in self.ignorLine):
continue
curLine = line.strip().split(self.delimiter)
for i in curLine:
if (not len(i.strip())) or (i in self.ignorChar):
continue
if random.random() < self.dotPrintRatio:
print('.', end = '')
self.i += 1
parsedata = struct.pack(self.formatter, float(i))
resultFile.write(parsedata)
originFile.close()
def convert(self):
if self.merge:
if not os.path.exists(self.resultDir):
os.makedirs(self.resultDir)
self.resultFile = open(self.mergedResultFileName ,'wb')
self.dfs(self.originDir)
print('共写入了%s条数据' % self.i)
self.resultFile.close()
if self.merge > 1:
f = open(self.mergedResultFileName, 'rb')
data = f.read() # read the entire content of the file
f.close()
bytes = len(data)
size = (int(bytes / self.merge // 16) + 1) * 16
count = 1
for i in range(0, bytes + 1, size):
fni = self.resultDir + '/chunk_%s' % count
f = open(fni, 'wb')
f.write(data[i : i + size])
f.close()
count += 1
BinaryFileConverter(
delimiter = ',',
ignorChar = ['[', ']'],
ignorLine = ['[', ']'],
types = ['.txt', '.json'],
originDir = './mobileNet',
resultDir = './binf',
ext = '.dat',
formatter = 'f',
dotPrintRatio = 0,
merge = 6).convert()
/**
* @file 打包到rd机器的配置
* @author yangmingming zhangmiao06
*/
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const extractLess = new ExtractTextPlugin({
filename: '[name].css'
});
module.exports = {
mode: 'development',
devtool: 'none',
optimization: {
minimize: false
},
entry: {
camera: './src/executor/camera',
index: './src/executor/runner'
},
output: {
filename: '../graphfe/src/view/common/lib/paddle/[name].js',
path: path.resolve(__dirname, './'),
library: 'panorama',
libraryTarget: 'umd',
libraryExport: 'default'
},
module: {
rules: [{
test: /\.(eot|woff|woff2|ttf|svg|png|jpg)$/,
loader: 'url-loader?limit=30000&name=[name].[ext]'
}, {
test: /\.less$/,
exclude: /node_modules/,
loader: ExtractTextPlugin.extract([
{loader: 'css-loader', options: {minimize: true}},
{loader: 'less-loader'}
])
}]
},
plugins: [extractLess],
resolve: {
extensions: ['.es6', '.js', '.json']
}
};
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册