简介:COLLADAMax导出DAE可以比3DAMX原系统自带的导出格式减少内存消耗并提高性能。OpenCOLLADA 3ds Max插件是OpenCOLLADA开源项目的一部分。它为3ds Max添加了一个额外的COLLADA导出器,
我发现它比内置的Autodesk更好。
使用方法:
1.下载插件COLLADAMaxNew.dle
2.安装插件,要安装插件,请将COLLADAMaxNew.dle文件复制到3ds Max安装文件夹的plugins子文件夹中。
比如:C:\ Program Files \ Autodesk \ 3ds Max 2019 \ plugins文件夹,这是64位系统的3ds Max
C:\ Program Files(x86)\ Autodesk \ 3ds Max 2019 \ plugins文件夹,这是32位系统的3ds Max
3.重新启动3dsmax,文件菜单-导出-保存的文件格式里面找到opencollada
4.全网搜索“Freemen的幸福之路”更多干货内容等着你!

文件:590m.com/f/25127180-490152194-9473a4(访问密码:551685)

以下内容无关:

-------------------------------------------分割线---------------------------------------------

技术背景
在前面一篇博客中我们介绍过基于docker的mindspore编程环境配置,这里我们基于这个环境,使用mindspore来拟合一个线性的函数,演示一下mindspore的基本用法。

回到顶部
环境准备
在Manjaro Linux上先用如下命令启动docker容器服务,启动后可用status查看状态:

[dechin-manjaro mindspore]# systemctl start docker
[dechin-manjaro mindspore]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-04-14 16:32:38 CST; 9s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 298485 (dockerd)
Tasks: 99 (limit: 47875)
Memory: 186.0M
CGroup: /system.slice/docker.service
├─298485 /usr/bin/dockerd -H fd://
└─298496 containerd --config /var/run/docker/containerd/containerd.toml --log-level info
在按照这篇博客的方法下载下来mindspore的容器镜像之后,可以在本地的镜像仓库中查询到该镜像:

[dechin-root mindspore]# docker images
REPOSITORY TAG IMAGE ID
swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-cpu 1.1.1 98a3f041e3d4
容器的启动方式可以参考如下指令:

[dechin-root mindspore]# docker run -it 98a3
root@2a6c33894e53:~# python
Python 3.7.5 (default, Feb 8 2021, 02:21:05)
[GCC 7.5.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

这里可以看到在这个容器镜像中是预装了python3.7.5版本的mindspore的,可以在python的命令行中用如下的方法进行验证:

from mindspore import context
WARNING: ‘ControlDepend’ is deprecated from version 1.1 and will be removed in a future version, use ‘Depend’ instead.
[WARNING] ME(20:139876984823936,MainProcess):2021-04-14-08:37:40.331.840 [mindspore/ops/operations/array_ops.py:2302] WARN_DEPRECATED: The usage of Pack is deprecated. Please use Stack.

context.set_context(mode=context.GRAPH_MODE, device_target=‘CPU’)
除了mindspore自身之外,我们还经常可能用到一些第三方的库,如matplotlib等,我们可以自行安装:

root@2a6c33894e53:~# python -m pip install matplotlib
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting matplotlib
Downloading http://mirrors.aliyun.com/pypi/packages/ce/63/74c0b6184b6b169b121bb72458818ee60a7d7c436d7b1907bd5874188c55/matplotlib-3.4.1-cp37-cp37m-manylinux1_x86_64.whl (10.3MB)
|████████████████████████████████| 10.3MB 4.4MB/s
Collecting cycler>=0.10 (from matplotlib)
Downloading http://mirrors.aliyun.com/pypi/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
Collecting kiwisolver>=1.0.1 (from matplotlib)
Downloading http://mirrors.aliyun.com/pypi/packages/d2/46/231de802ade4225b76b96cffe419cf3ce52bbe92e3b092cf12db7d11c207/kiwisolver-1.3.1-cp37-cp37m-manylinux1_x86_64.whl (1.1MB)
|████████████████████████████████| 1.1MB 13.9MB/s
Collecting python-dateutil>=2.7 (from matplotlib)
Downloading http://mirrors.aliyun.com/pypi/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl (227kB)
|████████████████████████████████| 235kB 4.6MB/s
Requirement already satisfied: pyparsing>=2.2.1 in /usr/local/python-3.7.5/lib/python3.7/site-packages (from matplotlib) (2.4.7)
Requirement already satisfied: pillow>=6.2.0 in /usr/local/python-3.7.5/lib/python3.7/site-packages (from matplotlib) (8.1.0)
Requirement already satisfied: numpy>=1.16 in /usr/local/python-3.7.5/lib/python3.7/site-packages (from matplotlib) (1.17.5)
Requirement already satisfied: six in /usr/local/python-3.7.5/lib/python3.7/site-packages (from cycler>=0.10->matplotlib) (1.15.0)
Installing collected packages: cycler, kiwisolver, python-dateutil, matplotlib
Successfully installed cycler-0.10.0 kiwisolver-1.3.1 matplotlib-3.4.1 python-dateutil-2.8.1
WARNING: You are using pip version 19.2.3, however version 21.0.1 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.
root@2a6c33894e53:~# python -m pip install --upgrade pip
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting pip
Downloading http://mirrors.aliyun.com/pypi/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl (1.5MB)
|████████████████████████████████| 1.5MB 1.3MB/s
Installing collected packages: pip
Found existing installation: pip 19.2.3
Uninstalling pip-19.2.3:
Successfully uninstalled pip-19.2.3
Successfully installed pip-21.0.1
同样的方法我们再安装一下ipython:

root@b8955ba28950:/home# python -m pip install IPython
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting IPython
Downloading http://mirrors.aliyun.com/pypi/packages/c9/b1/82cbe2b856386f44f37fdae54d9b425813bd86fe33385c9d658d64826098/ipython-7.22.0-py3-none-any.whl (785 kB)
|████████████████████████████████| 785 kB 1.8 MB/s
Collecting prompt-toolkit!=3.0.0,!=3.0.1,❤️.1.0,>=2.0.0
Downloading http://mirrors.aliyun.com/pypi/packages/eb/e6/4b4ca4fa94462d4560ba2f4e62e62108ab07be2e16a92e594e43b12d3300/prompt_toolkit-3.0.18-py3-none-any.whl (367 kB)
|████████████████████████████████| 367 kB 818 kB/s
Collecting pickleshare
Downloading http://mirrors.aliyun.com/pypi/packages/9a/41/220f49aaea88bc6fa6cba8d05ecf24676326156c23b991e80b3f2fc24c77/pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting pygments
Downloading http://mirrors.aliyun.com/pypi/packages/3a/80/a52c0a7c5939737c6dca75a831e89658ecb6f590fb7752ac777d221937b9/Pygments-2.8.1-py3-none-any.whl (983 kB)
|████████████████████████████████| 983 kB 2.7 MB/s
Requirement already satisfied: decorator in /usr/local/python-3.7.5/lib/python3.7/site-packages (from IPython) (4.4.2)
Collecting traitlets>=4.2
Downloading http://mirrors.aliyun.com/pypi/packages/f6/7d/3ecb0ebd0ce8dcdfa7bd47ab85c1d4a521e6770ef283d0824f5804994dfe/traitlets-5.0.5-py3-none-any.whl (100 kB)
|████████████████████████████████| 100 kB 4.0 MB/s
Collecting pexpect>4.3
Downloading http://mirrors.aliyun.com/pypi/packages/39/7b/88dbb785881c28a102619d46423cb853b46dbccc70d3ac362d99773a78ce/pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
|████████████████████████████████| 59 kB 5.9 MB/s
Collecting jedi>=0.16
Downloading http://mirrors.aliyun.com/pypi/packages/f9/36/7aa67ae2663025b49e8426ead0bad983fee1b73f472536e9790655da0277/jedi-0.18.0-py2.py3-none-any.whl (1.4 MB)
|████████████████████████████████| 1.4 MB 3.7 MB/s
Collecting backcall
Downloading http://mirrors.aliyun.com/pypi/packages/4c/1c/ff6546b6c12603d8dd1070aa3c3d273ad4c07f5771689a7b69a550e8c951/backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Requirement already satisfied: setuptools>=18.5 in /usr/local/python-3.7.5/lib/python3.7/site-packages (from IPython) (41.2.0)
Collecting parso<0.9.0,>=0.8.0
Downloading http://mirrors.aliyun.com/pypi/packages/a9/c4/d5476373088c120ffed82f34c74b266ccae31a68d665b837354d4d8dc8be/parso-0.8.2-py2.py3-none-any.whl (94 kB)
|████████████████████████████████| 94 kB 6.0 MB/s
Collecting ptyprocess>=0.5
Downloading http://mirrors.aliyun.com/pypi/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth
Downloading http://mirrors.aliyun.com/pypi/packages/59/7c/e39aca596badaf1b78e8f547c807b04dae603a433d3e7a7e04d67f2ef3e5/wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Collecting ipython-genutils
Downloading http://mirrors.aliyun.com/pypi/packages/fa/bc/9bd3b5c2b4774d5f33b2d544f1460be9df7df2fe42f352135381c347c69a/ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Installing collected packages: wcwidth, ptyprocess, parso, ipython-genutils, traitlets, pygments, prompt-toolkit, pickleshare, pexpect, jedi, backcall, IPython
WARNING: The script pygmentize is installed in ‘/usr/local/python-3.7.5/bin’ which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The scripts iptest, iptest3, ipython and ipython3 are installed in ‘/usr/local/python-3.7.5/bin’ which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed IPython-7.22.0 backcall-0.2.0 ipython-genutils-0.2.0 jedi-0.18.0 parso-0.8.2 pexpect-4.8.0 pickleshare-0.7.5 prompt-toolkit-3.0.18 ptyprocess-0.7.0 pygments-2.8.1 traitlets-5.0.5 wcwidth-0.2.5
安装过程中都没有出现其他的依赖问题,接下来我们可以在docker容器中保存这些已经安装的库,避免下一次使用的时候还需要再安装一次。在用exit退出当前容器镜像之后,可以用docker ps指令查看近期的操作记录:

[dechin-root mindspore]# docker ps -n 3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a6c33894e53 98a3 “/bin/bash” 13 minutes ago Exited (0) 7 seconds ago upbeat_tharp
625ee5f4ee95 ea1c “bash” 9 days ago Exited (0) 9 days ago zealous_mccarthy
ded2cb29290a kivy/buildozer “buildozer bash -c '…” 9 days ago Exited (1) 9 days ago exciting_lumiere
这里第一个操作记录就是我们需要保存的mindspore的镜像,那么我们可以用docker commit的指令将操作保存到一个新的镜像里面:

[dechin-root mindspore]# docker commit 2a6c mindspore
sha256:3a6951d9b9009f93027748ecec78078efff1fb36599a5786bcbc667e72119392
上面的执行反馈表示运行成功了,再次查看本地镜像内容:

[dechin-root mindspore]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mindspore latest 3a6951d9b900 31 seconds ago 1.22GB
swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-cpu 1.1.1 98a3f041e3d4 2 months ago 1.18GB
可以看到我们的基础镜像环境已经制作完成了,在原镜像的基础上多了40M左右的空间。本章节的最后我们也说明一下,mindspore提供的这个镜像的基础系统环境为Ubuntu18.04:

root@b8955ba28950:/home# cat /etc/issue
Ubuntu 18.04.5 LTS \n \l
回到顶部
MindSpore线性函数拟合
假设有如下图中红点所示的一系列散点,或者可以认为是需要我们来执行训练的数据。而图中的绿线表示真实的函数,也就是说我们是基于这样一个真实的线性函数,来生成了一系列加随机噪声的散点。最终我们的目的当然是希望能够通过这些散点将线性的函数再拟合出来,这样就可以用来预测下一个位置的函数值,相关技术用在量化金融领域,就可以预测下一步股市的价格,当然那样的函数就会更加的复杂。

对应于图中的函数,我们给定的是:

f(x)=2x+3
生成散点数据集
加噪声的方法在get_data函数中体现,其中生成数据集的方法为:先在[−10,10]的范围内生成一系列的随机x自变量值,然后生成一系列的正态分布随机数作为噪声,把这些噪声加到自变量值所对应的f(x)函数值上,就得到了原始数据。当然,这里没有用return进行返回,而是用yield的形式逐一返回。

第二步我们需要将这些数据集转化为mindspore所能够识别的数据格式:mindspore.dataset.GeneratorDataset,除了可以给x和y分别配置一个变量名之外,还可以指定这些数据集的分组(batch)和重复次数,其中分组数量的配置是有可能影响到最终的训练速率的。

test_linear.py

from mindspore import context
context.set_context(mode=context.GRAPH_MODE, device_target=“CPU”)
import numpy as np
import matplotlib.pyplot as plt
from mindspore import dataset as ds

def get_data(num, w=2.0, b=3.0):
for _ in range(num):
x = np.random.uniform(-10.0, 10.0)
noise = np.random.normal(0, 1)
y = x * w + b + noise
yield np.array([x]).astype(np.float32), np.array([y]).astype(np.float32)

eval_data = list(get_data(50)) # 生成50个带噪声的随机点
x_target_label = np.array([-10, 10, 0.1])
y_target_label = x_target_label * 2 + 3 # 期望的函数值
x_eval_label,y_eval_label = zip(*eval_data)

def create_dataset(num_data, batch_size=16, repeat_size=1):
input_data = ds.GeneratorDataset(list(get_data(num_data)), column_names=[‘data’,‘label’])
input_data = input_data.batch(batch_size)
input_data = input_data.repeat(repeat_size)
return input_data

data_number = 1600
batch_number = 16
repeat_number = 1

ds_train = create_dataset(data_number, batch_size=batch_number, repeat_size=repeat_number)
print(“The dataset size of ds_train:”, ds_train.get_dataset_size())
dict_datasets = next(ds_train.create_dict_iterator())

print(dict_datasets.keys())
print(“The x label value shape:”, dict_datasets[“data”].shape)
print(“The y label value shape:”, dict_datasets[“label”].shape)
上述代码的执行效果如下:

root@b8955ba28950:/home# python test_linear.py
The dataset size of ds_train: 100
dict_keys([‘data’, ‘label’])
The x label value shape: (16, 1)
The y label value shape: (16, 1)
到这里为止,我们就已经构造了一个1600个训练的数据,并且分为了100个batch进行训练,每个batch的大小为16。

构建拟合模型与初始参数
用mindspore.nn.Dense的方法我们可以构造一个线性拟合的模型:

f(x)=wx+b
关于该激活函数的官方文档说明如下:

而这里面的weight和bias的初始化参数是由一个张量形式的数据结构来定义的,我们给了一个入参nn.Dense(1, 1, Normal(0.02), Normal(0.02))表示两组参数,都是一维的张量(或称为1阶的张量),而这两个初始化张量的元素是由两个N(0,σ)正态分布所生成的随机化初始数据,比如在该案例中我们可以试着将这些初始化的参数打印出来:

test_linear.py

from mindspore import context
context.set_context(mode=context.GRAPH_MODE, device_target=“CPU”)
import numpy as np
import matplotlib.pyplot as plt
from mindspore import dataset as ds
from mindspore.common.initializer import Normal
from mindspore import nn

def get_data(num, w=2.0, b=3.0):
for _ in range(num):
x = np.random.uniform(-10.0, 10.0)
noise = np.random.normal(0, 1)
y = x * w + b + noise
yield np.array([x]).astype(np.float32), np.array([y]).astype(np.float32)

eval_data = list(get_data(50))
x_target_label = np.array([-10, 10, 0.1])
y_target_label = x_target_label * 2 + 3
x_eval_label,y_eval_label = zip(*eval_data)

def create_dataset(num_data, batch_size=16, repeat_size=1):
input_data = ds.GeneratorDataset(list(get_data(num_data)), column_names=[‘data’,‘label’])
input_data = input_data.batch(batch_size)
input_data = input_data.repeat(repeat_size)
return input_data

data_number = 1600
batch_number = 16
repeat_number = 1

ds_train = create_dataset(data_number, batch_size=batch_number, repeat_size=repeat_number)
dict_datasets = next(ds_train.create_dict_iterator())

class LinearNet(nn.Cell):
def init(self):
super(LinearNet, self).init()
self.fc = nn.Dense(1, 1, Normal(0.02), Normal(0.02))

def construct(self, x):x = self.fc(x)return x

net = LinearNet()
model_params = net.trainable_params()
for param in model_params:
print(param, param.asnumpy())
执行结果如下,是两个一维的数组:数组

root@b8955ba28950:/home# python test_linear.py
Parameter (name=fc.weight) [[-0.00252427]]
Parameter (name=fc.bias) [0.00694926]
在上述代码中虽然打印了两个参数值,但是并不是很直观,我们可以将这组参数值所对应的函数图画在刚才的散点图中看看效果:

test_linear.py

from mindspore import context
context.set_context(mode=context.GRAPH_MODE, device_target=“CPU”)
import numpy as np
import matplotlib.pyplot as plt
from mindspore import dataset as ds
from mindspore.common.initializer import Normal
from mindspore import nn, Tensor

def get_data(num, w=2.0, b=3.0):
for _ in range(num):
x = np.random.uniform(-10.0, 10.0)
noise = np.random.normal(0, 1)
y = x * w + b + noise
yield np.array([x]).astype(np.float32), np.array([y]).astype(np.float32)

eval_data = list(get_data(50))
x_target_label = np.array([-10, 10, 0.1])
y_target_label = x_target_label * 2 + 3
x_eval_label,y_eval_label = zip(*eval_data)

def create_dataset(num_data, batch_size=16, repeat_size=1):
input_data = ds.GeneratorDataset(list(get_data(num_data)), column_names=[‘data’,‘label’])
input_data = input_data.batch(batch_size)
input_data = input_data.repeat(repeat_size)
return input_data

data_number = 1600
batch_number = 16
repeat_number = 1

ds_train = create_dataset(data_number, batch_size=batch_number, repeat_size=repeat_number)
dict_datasets = next(ds_train.create_dict_iterator())

class LinearNet(nn.Cell):
def init(self):
super(LinearNet, self).init()
self.fc = nn.Dense(1, 1, Normal(0.02), Normal(0.02))

def construct(self, x):x = self.fc(x)return x

net = LinearNet()
model_params = net.trainable_params()

x_model_label = np.array([-10, 10, 0.1])
y_model_label = (x_model_label * Tensor(model_params[0]).asnumpy()[0][0] +
Tensor(model_params[1]).asnumpy()[0])

plt.axis([-10, 10, -20, 25])
plt.scatter(x_eval_label, y_eval_label, color=“red”, s=5)
plt.plot(x_model_label, y_model_label, color=“blue”)
plt.plot(x_target_label, y_target_label, color=“green”)
plt.savefig(‘initial.png’)

COLLADAMaxNew插件,opencollada导出DAE文件格式 for 3dmax2019相关推荐

  1. ios 3D引擎 SceneKit 开发(3) --使用3dmax导出DAE文件

    hello ,大家好,我是Roc.Tian,最近一直在研究苹果自家的3D 引擎 SceneKit ,适当写写博客,总结一下,与大家分享一下,也希望跟大家交流,共同进步. 这其实是建模人员该了解的问题, ...

  2. 导出 服务器 excel文件,服务器数据库导出excel文件格式

    服务器数据库导出excel文件格式 内容精选 换一换 GaussDB(DWS)支持使用gs_dumpall工具导出所有数据库的全量信息,包含集群中每个数据库信息和公共的全局对象信息.可根据需要自定义导 ...

  3. java excel 导出数据文件格式无效

    java excel 导出数据文件格式无效 的原因 WritableWorkbook workbook=Workbook.createWorkbook(new File("h:\\a.xls ...

  4. acrobat导出html没图片,PDF 导出的文件格式选项

    在线将 PDF 快速转换为 Word. 在线快速将 PDF 转换为 Excel. Acrobat 中 PDF 导出的文件格式选项 在使用 Acrobat 中的"导出 PDF"工具将 ...

  5. 360浏览器插件如何导出独立保存?插件文件夹在哪里找?

    今天,我想把360浏览器的插件独立保存下载,无奈一时之间无从下手,以前保存过,现在被360改了,只能靠度娘了,最后发现,度娘都靠不住,只有自己动手咯.浏览器插件是以".crx"结尾 ...

  6. 【前端使用插件js-export-excel导出excel】

    前端使用插件js-export-excel导出excel (1)先安装js-export-excel插件 npm install js-export-excel --save(2)引入js-expor ...

  7. 前端使用XLSX插件实现导出功能,包含隐藏英文表头字段

    前端使用XLSX插件实现导出功能,具体代码实现: 1.npm install xlsx --save 下载安装xlsx插件依赖包 2.在使用得地方引入import XLSX, { utils } fr ...

  8. php aspose.words,C#_使用aspose.word 第三方的插件实现导出word,使用aspose.word 第三方的插 - phpStudy...

    使用aspose.word 第三方的插件实现导出word 使用aspose.word 第三方的插件实现服务器端无需安装office组件导出word的功能 #region 生成的excel文件命名和确保 ...

  9. max2019 导出DAE 支持物体名称中文

    max2019默认导出dae,并不支持中文,如果有中文,导出后会成为"fbx"开头的一长串字符,导出FBX到max2012中再导出dae即可 max2019导出的DAE文件如下 M ...

最新文章

  1. QCon上海2015精彩演讲前瞻:一线互联网公司架构实践
  2. 深度学习中图片数据增强方法
  3. WCF duplex service + silverlight 聊天代码
  4. html/jquery 常用的输入与获取参数
  5. Java NIO框架Mina
  6. RDC升级(remote desktop service)
  7. Tomcat5.5链接Oracle、DB2、MySQL数据源实现JSP下拉框的填充
  8. redhat linux查看进程cpu,Redhat Linux 查看cpu、memory 等命令
  9. [11]ESP32+三轴磁罗盘HMC5883L移植与调试
  10. 怎样制作透明底艺术字水印?教你在线制作艺术字的方法
  11. python爬取豆瓣电影top250_python3爬取豆瓣top250电影
  12. Swift - 去处图片的白色、黑色背景(使UIImage背景透明)
  13. 基于Cesium的火箭发射演示
  14. python3 zlib 实现压缩与解压字符串与文件数据流
  15. 为App签名(为apk签名)
  16. 拉格朗日多项式插值法 思路详解+详细代码
  17. [假如生活欺骗了你]
  18. 穷人和富人的思维方式探析
  19. 2021最新 什么是虚拟专用服务器技术?
  20. 潜流式人工湿地计算_潜流式人工湿地系统计算公式

热门文章

  1. 新数据时代的挑战与机遇 傲腾生态填补产业鸿沟
  2. 抖音一般多久能上热门 视频修改MD5工具
  3. python sympy包符号运算进行定积分计算
  4. Redis知识梳理(25)[ Redis 安全通讯 ]
  5. 语音助手(基于v3s开源啦)
  6. python获取pdf页数_Python分割指定页数的pdf文件方法
  7. 如何删除hao123?
  8. 立体表情包贺卡项目,一单赚10元,一天300,绝对蓝海
  9. 软件评测师:数据库知识
  10. 特征选择方法详解Part2-卡方检验、互信息(Mutual Information)