学习并实践HIVE的TEZ执行引擎应用指南
概述
最近公司在使用Tez,今天写一篇关于Tez的学习和使用随笔。Tez是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。Hadoop传统上是一个大量数据批处理平台。但是,有很多用例需要近乎实时的查询处理性能。还有一些工作则不太适合MapReduce,例如机器学习。Tez的目的就是帮助Hadoop处理这些用例场景。
Tez构建在YARN之上,后者是Hadoop所使用的新资源管理框架。Tez产生的主要原因是绕开MapReduce所施加的限制。除了必须要编写Mapper和Reducer的限制之外,强制让所有类型的计算都满足这一范例还有效率低下的问题——例如使用HDFS存储多个MR作业之间的临时数据,这是一个负载。在Hive中,查询需要对不相关的key进行多次shuffle操作的场景非常普遍,例如join - grp by - window function - order by。
Tez产生背景
MR性能差,资源消耗大,如:Hive作业之间的数据不是直接流动的,而是借助HDFS作为共享数据存储系统,即一个作业将处理好的数据写入HDFS,下一个作业再从HDFS重新读取数据进行处理。很明显更高效的方式是,第一个作业直接将数据传递给下游作业。
MR 默认了map和reduce阶段,map会对中间结果进行分区、排序,reduce会进行合并排序,这一过程并不适用于所有场景。
引擎级别的Runtime优化:MR执行计划在编译时已经确定,无法动态调整(?)。然而在执行ETL和Ad-hoc等任务时,根据实际处理的表大小,动态调整join策略、任务并行度将大大缩短任务执行时间。
下面给您展示一张Tez官方图,您就可以简单明白Tez和MapReduce的关系。
总的来说之前mapReduce在map和reduce阶段都会产生I/O落盘,但是Tez就不要这一步骤了。
Tez原理
Tez包含的组件:
有向无环图(DAG)——定义整体任务。一个DAG对象对应一个任务。
节点(Vertex)——定义用户逻辑以及执行用户逻辑所需的资源和环境。一个节点对应任务中的一个步骤。
边(Edge)——定义生产者和消费者节点之间的连接。
边需要分配属性,对Tez而言这些属性是必须的,有了它们才能在运行时将逻辑图展开为能够在集群上并行执行的物理任务集合。下面是一些这样的属性:
数据移动属性,定义了数据如何从一个生产者移动到一个消费者。
调度(Scheduling)属性(顺序或者并行),帮助我们定义生产者和消费者任务之间应该在什么时候进行调度。
数据源属性(持久的,可靠的或者暂时的),定义任务输出内容的生命周期或者持久性,让我们能够决定何时终止。
该模型所有的输入和输出都是可插拔的。为了方便,Tez使用了一个基于事件的模型,目的是为了让任务和系统之间、组件和组件之间能够通信。事件用于将信息(例如任务失败信息)传递给所需的组件,将输出的数据流(例如生成的数据位置信息)传送给输入,以及在运行时对DAG执行计划做出改变等。Tez还提供了各种开箱即用的输入和输出处理器。这些富有表现力的API能够让更高级语言(例如Hive)的编写者很优雅地将自己的查询转换成Tez任务。
DAG
Edge:定义了上下游Vertex之间的连接方式。
Edge相关属性:
Data movement:定义了producer与consumer之间数据流动的方式。
One-To-One: 第i个producer产生的数据,发送给第i个consumer。这种上下游关系属于Spark的窄依赖。
Broadcast: producer产生的数据路由都下游所有consumer。这种上下游关系也属于Spark的窄依赖。
Scatter-Gather: producer将产生的数据分块,将第i块数据发送到第i个consumer。这种上下游关系属于Spark的宽依赖。
Scheduling:定义了何时启动consumer Task
Sequential: Consumer task 需要producer task结束后启动,如:MR。
Concurrent: Consumer task 与producer task一起启动,如:流计算。
Data source:定义了任务outp的生命周期与可靠性。
Persisted: 当任务退出后,该任务output依然存在,但经过一段时间后,可能会被删除,如:Mapper输出的中间结果。
Persisted-Reliable: 任务output总是存在,比如,MR中reducer的输出结果,存在HDFS上。
Ephemeral: 任务输出只有当该task在运行的时候,才存在,如:流计算的中间结果。
举例——MapReduce在Tez的编程模型
一个DAG图中只有两个Vertex,Map Vertex与Reduce Vertex。连接Map Vertex与Reduce Vertex的Edge有以下属性: Data movement: Scatter-Gather Scheduling:Sequential Data Source: Map Vertex的Data Source为Persisted-Reliable, reduce Vertex 的Data Source为Persisted
Tez Api实现WordCount
Runtime API——Input/Processor/Output
Task是Tez的最小执行单元,Vertex中task的数量与该vertex的并行度一致。以下是Input、Processor、Output均需要实现的接口:
List<Event> initialize(Tez*Context) -This is where I/P/O receive their corresponding context objects. They can, optionally, return a list of events. handleEvents(List<Event> events) – Any events generated for the specific I/P/O will be passed in via this interface. Inputs receive DataMovementEvent(s) generated by corresponding Outputs on this interface – and will need to interpret them to retrieve data. At the moment, this can be ignored for Outputs and Processors. List<Event> close() – Any cleanup or final commits will typically be implemented in the close method. This is generally a good place for Outputs to generate DataMovementEvent(s). More on these events later.
Input: 接收上游Output事件,获取上游数据位置;从physical Edge中获取实际数据;解析实际数据,为Processor提供统一的逻辑试图;
Processor: 利用Input获取实际数据,执行用户逻辑,最后输出;
Output: 将Processor提供的数据,进行分区;向下游Input发送事件;
Tez的事件驱动机制: Tez中各个组件通过不同类型的Event进行通信。
数据传输:Output通过ShuffleEvent传递上游数据位置,AM负责将Event路由到相应Input中。
容错:Input当无法获取到上游数据时,会通知框架重新调度上游任务,这也意味着任务成功完成后,仍然会被重新调度。
runtime执行计划优化:根据上游Map Stage产生的数据大小,动态reducer并行度。Output产生的事件路由到可拔插的Vertex/Edge management module,对应moudule就可以对runtime执行计划进行调整。
Runtime优化
任务运行时,程序知晓更多任务相关的信息,通过这些信息,我们可以动态修改修改执行计划,比如:修改mapper或reducer数量,决定何时启动reducer等。在Tez中,不同组件通过不同事件类型,进行通信。
动态修改reducer并行度:MapTask通过VertexManager类型的事件向ShuffleVertextManager发送信息,比如:所处理的partition大小等。 ShuffleVertexManager通过所获得的信息,可以估算出所有Task的输出数据大小,最后来调整下游reduce Vertex的并行度,如下图:
reducer"慢"启动(预先启动): 上游MapTask通过事件不断向ShuffleVertexManager汇报任务完成情况,ShuffleVertexManager通过这些信息,可以判断何时启动下游reduceTask与需要启动的reduceTask数量。
从逻辑执行计划到物理执行计划
从逻辑DAG到最后物理执行计划示意图:
其他优化措施
Tez Session: 与数据库session相似,在同一个Tez Session中,可串行执行多个Tez Dag。Tez Session避免了AM的多次启动与销毁,在有多个DAG图的Tez作业(HQL任务)中大大减小了任务执行时间。
这也是为什么在Tez-UI中,一个HQL任务,只有一个Application,却有多个DAG(MR中一个HQL任务,有多个Application)。
Tez相关参数:
Container复用
问题:
container的资源兼容? 被先后调度到同一个container的多个task所需要的资源,必须与container的资源相互兼容。也就是说,container拥有的资源,如:jar包,Memory,CPU等,需要是task所需资源的“超集”。
怎么调度? 进行container复用时,Tez对Task进行调度。Tez会依据:任务本地性、任务所需资源、pending任务的优先级等因素,进行任务调度。
优点:
减少作业执行过程中JVM的创建与销毁带来的开销
减小对RM的请求压力
运行在同一container上task之间的数据共享。比如,MapJoin中可以通过共享小表数据的方式,减少资源消耗。
相关参数:
Tez优缺点
优点:
避免中间数据写回HDFS,减小任务执行时间
vertex management模块使runtime动态修改执行计划变成可能
input/processor/output编程模型,大大提高了任务模型的灵活性
提供container复用机制与Tez Session,减少资源消耗
缺点:
出现数据重复问题等数据质量问题
Tez与Hive捆绑,在其他领域应用较少
社区不活跃
Tez安装过程
1.下载tez src解压,修改pom.xml, 将hadoop.version改为2.7.2,最好用非root用户编译
mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true
Github-refer:https://github.com/apache/tez
Download-refer:http://tez.apache.org/
2.编译成功后,在tez-dist/target目录下,能够发现如下文件
archive-tmp maven-archiver tez-0.8.4 tez-0.8.4-minimal tez-0.8.4-minimal.tar.gz tez-0.8.4.tar.gz tez-dist-0.8.4-tests.jar
3.将tez-0.8.4-minimal上传到hdfs上,本例中上传到/tez目录下
Hadoop fs –put tez-0.8.4-minimal.tar.gz /tez/
4, 将tez-0.8.4-minimal.tar.gz考到/usr/hive下,并解压到./tez下
taz –zxvf tez-0.8.4-minimal.tar.gz –C ./tez
拷贝tez的lib下或者主目录下jar包===》到hive主目录下lib中去
5.在客户端安装tez-0.8.4-minimal,并且在conf目录下建立tez-site.xml并正确配置
<property>
<name>tez.lib.uris</name>
<value>${fs.defaultFS}/user/tez/tez-0.8.5-minimal.tar.gz</value>
</property>
<property>
<name>tez.use.cluster.hadoop-libs</name>
<value>true</value>
</property>
6.在hive的客户端配置环境变量 (可以配置到/etc/profile.d/Hadoop.sh
export TEZ_HOME=/usr/hive/tez
for jar in `ls ${TEZ_HOME}|grep jar`;do
export HADOOP_CLASSPATH=${TEZ_HOME}/$jar:${HADOOP_CLASSPATH}
done
for jar in `ls ${TEZ_HOME}/lib/|grep jar`;do
export HADOOP_CLASSPATH=${TEZ_HOME}/lib/$jar:${HADOOP_CLASSPATH}
done
7.在hive-site.xml中配置参数。
<property>
<name>hive.user.install.directory</name>
<value>/user/</value>
<description>
If hive (in tez mode only) cannot find a usable hive jar in "hive.jar.directory",
it will upload the hive jar to "hive.user.install.directory/user.name"
and use it to run queries.
</description>
</property>
<property>
<name>hive.execution.engine</name>
<value>tez</value>
<description>
Expects one of [mr, tez, spark].
Chooses execution engine. Options are: mr (Map reduce, default), tez, spark. While MR
remains the default engine for historical reasons, it is itself a historical engine
and is deprecated in Hive 2 line. It may be removed without further warning.
</description>
</property>
8.hive启动后执行。
set hive.execution.engine=tez; #即可运行hive on tez任务。
补充:hive2.x默认计算引擎为tez,编辑/usr/hive/conf/hive-site.xml
Tez实际使用
mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true
Github-refer:https://github.com/apache/tez
Download-refer:http://tez.apache.org/
archive-tmp maven-archiver tez-0.8.4 tez-0.8.4-minimal tez-0.8.4-minimal.tar.gz tez-0.8.4.tar.gz tez-dist-0.8.4-tests.jar
taz –zxvf tez-0.8.4-minimal.tar.gz –C ./tez
拷贝tez的lib下或者主目录下jar包===》到hive主目录下lib中去
<property> <name>tez.lib.uris</name> <value>${fs.defaultFS}/user/tez/tez-0.8.5-minimal.tar.gz</value> </property> <property> <name>tez.use.cluster.hadoop-libs</name> <value>true</value> </property>
6.在hive的客户端配置环境变量 (可以配置到/etc/profile.d/Hadoop.sh
export TEZ_HOME=/usr/hive/tez for jar in `ls ${TEZ_HOME}|grep jar`;do export HADOOP_CLASSPATH=${TEZ_HOME}/$jar:${HADOOP_CLASSPATH} done for jar in `ls ${TEZ_HOME}/lib/|grep jar`;do export HADOOP_CLASSPATH=${TEZ_HOME}/lib/$jar:${HADOOP_CLASSPATH} done
7.在hive-site.xml中配置参数。
<property>
<name>hive.user.install.directory</name>
<value>/user/</value>
<description>
If hive (in tez mode only) cannot find a usable hive jar in "hive.jar.directory",
it will upload the hive jar to "hive.user.install.directory/user.name"
and use it to run queries.
</description>
</property>
<property>
<name>hive.execution.engine</name>
<value>tez</value>
<description>
Expects one of [mr, tez, spark].
Chooses execution engine. Options are: mr (Map reduce, default), tez, spark. While MR
remains the default engine for historical reasons, it is itself a historical engine
and is deprecated in Hive 2 line. It may be removed without further warning.
</description>
</property>
8.hive启动后执行。
set hive.execution.engine=tez; #即可运行hive on tez任务。
补充:hive2.x默认计算引擎为tez,编辑/usr/hive/conf/hive-site.xml
配置tez到hive中,安装过程省略。
准备数据:
CREATE TABLE user_match_temp ( user_name string, opponent string, result int, create_time timestamp) row format delimited fields terminated by ',' stored as textfile location '/project/rhett/user_match_temp/';
执行查询:
SELECT *,lag(opponent,1) over (partition by user_name order by create_time) as lag_opponent, lead(opponent,1) over (partition by user_name order by create_time) as lead_opponent, first_value(opponent) over (partition by user_name order by create_time rows between 3 preceding and 3 following) as first_opponent, last_value(opponent) over (partition by user_name order by create_time rows between 3 preceding and 3 following) as last_opponent From user_match_temp;
在tez界面可以查看对应的任务所有的DAG都在这里:
在上图可以查看到整个任务的执行调度情况。上图显示了执行结果,执行用户,执行语句,执行在yarn的applicationID还有队列。这里dag id也是惟一的id,点击dag name就会显示DAG的整个过程:
上图显示了 DAG的概述界面,运行进展,包含了2个Vertex,其中map vertex执行7个任务,reducer vertex执行2个任务,并且都是成功的,最下面是执行的完整sql语句。在最上面有一个下载的按钮,这个下载之后是一个zip的压缩包,压缩包主要是5个json文件,包含运行的任务的情况,dag的情况,task_attempts情况,tasks情况,vertex情况。
执行的DAG图形:
还可以查看所有的tez的所有任务:
总结
感谢大神分享:
https://zhuanlan.zhihu.com/p/63315907
https://blog.****.net/hqwang4/article/details/78090087
https://cloud.tencent.com/developer/article/1625679
https://cwiki.apache.org/confluence/display/TEZ/How+initial+task+parallelism+works
https://www.jianshu.com/p/167ba0464a44
原文地址:https://www.cnblogs.com/boanxin/p/13336930.html
推荐阅读
-
学习并实践HIVE的TEZ执行引擎应用指南
-
41 个下载免费 3D 模型的最佳网站-使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 17. Clara.io Clara.io 是一个创建 3D 内容的全球平台,也是一个培养新 3D 艺术家的社区。Clara.io 提供+100,000个免费的3D模型,包括OBJ,Blend,STL,FBX,DAE,Babylon.JS,Three.JS格式,用于 Clara.io,Unity 3D,Blender,Sketchup,Cinema 4D,3DS Max和Maya。 使用说明:免费,标准和专业帐户仅供个人使用,如果您需要将 clara.io 用于商业用途,请与销售团队联系。 18. 3DExport 3DExport是一个市场,您可以在其中购买和销售用于CG项目的3D模型,3D打印模型和纹理。它提供15 +不同的3D格式供下载,如3DS MAX(.max),Cinema4D(.c4d),Maya(.mb,.ma),Lightwave(.lwo),Softimage(.xsi),Wavefront OBJ(.obj),Autodesk FBX(.fbx)等。它还提供15种不同的语言! 使用说明:免费下载仅供个人和非商业用途。 19. 3D Warehouse 3D Warehouse是一个开放的库,允许用户共享和下载SketchUp 3D模型,用于建筑,设计,施工和娱乐!任何人都可以免费制作,修改和重新上传内容到3D仓库,您可以找到任何您能想到的东西,如家具,电子产品,室内产品等。 使用说明:3D Warehouse中的所有模型都是免费的,因此任何人都可以下载文件以用于SketchUp甚至其他软件,如AutoCAD,Revit和ArchiCAD。 20. CadNav.com CadNav是CGI平面设计师和CAD / CAM / CAE工程师的在线3D模型库,我们提供超过50000 +免费3D模型和CAD模型下载。在CadNav网站上,您可以下载高质量的多边形网格3D模型,3D CAD实体对象,纹理,Vray材料,3D作品,CAD图纸等。 使用说明:免费下载仅供个人和非商业用途。 21. All3dfree.net 就像网站名称一样,它提供免费的3D模型,还包括Vray材料,CAD块,2d和3d纹理集合,无需注册即可免费下载。它是不断更新的,因此您可以查找或请求3DS,MAX,C4D,skp,OBJ,FBX,MTL等格式的模型。 使用说明:所有资源均不允许用于商业用途,否则您将承担责任。 22. Hum3D 自2005年以来,Hum3D帮助来自3多个国家的80D艺术家节省3D建模时间,并制作逼真的3D模型,用于电影,视频游戏,AR应用程序和可视化。所有模型均由首席3D艺术家进行验证,他们检查其是否符合专业要求和最新的3D建模标准。 使用说明:免费下载仅供个人和非商业用途。 23. Artist-3D.com 艺术家-3D 库存的免费 3D 模型下载按通用类别排序。它为人体解剖学、汽车、家具、火箭、卫星等模型提供 AutoDesk 3DS Max 格式。您还可以在浏览他们的网站时找到教程和类似类型的建模。 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 24. Free the models 就像本网站的标题一样,它为3d应用程序和3d游戏引擎提供免费的内容模型。您可以为您的任何项目找到许多有趣且有用的模型!它提供3ds,wavefront,bryce,poser,lightwave,md2和unity3d格式的模型。还有一个很棒的纹理集合,可以在您最喜欢的建模和渲染程序中使用。 使用说明:您从这里下载的所有内容都可以免费使用,除非它不能包含在另一个免费的网络或CD收藏中,也不能单独出售。否则,您可以在商业游戏,3D应用程序或渲染作品中使用它。您不必提供信用,但如果您这样做,那就太好了。 25. Resources.blogscopia 本网站由一家名为Scopia的公司创建。他们制作3D图像和视频,您可以找到许多为CGI工作的信息架构设计的模型,所有这些都可以在现实生活中使用。您可以免费下载它们,但是,如果您想一次下载它们,您可以支付 3 到 9 欧元。 使用说明:您可以免费下载模型部分的所有文件。每个压缩文件都包含您也可以在此处找到的许可证。基本上,您可以对文件执行任何操作。唯一的限制是不归属于Scopia的重新分发。 26.ambientCG 1000+公共领域PBR材料适合所有人!环境CG是使用许多不同的方法和资产类型创建的,例如照片纹理(PBR),贴花(PBR),图集(PBR),照片纹理(普通),物质存档(SBSAR),雕刻画笔,3D模型和地形。您可以在所有项目中*使用它们! 使用说明:在 ambientCG 上提供下载的所有 PBR 材料、画笔、照片和 3D 模型均根据知识共享 CC0 1.0 通用许可提供。您可以复制、修改、分发和执行作品,即使是出于商业目的,也无需征得许可。信用将不胜感激。 不要满足于平庸的大理石纹理 - 立即使用我们的免费PBR大理石纹理升级您的3D设计。 27.Pixar One Twenty Eight 这是一个提供官方动画行业经典纹理的网站:皮克斯,创建于 1993 年,该纹理库包括 128 个重复纹理,现在免费提供。 它包含您来到的纹理,包括砖块和动物毛皮。肯定会有一些你可以使用的东西。 使用说明:皮克斯动画工作室的《Pixar One Twenty Eight》根据知识共享署名4.0国际许可协议进行许可。即使出于商业目的,您也可以重新混合、调整和构建您的作品,只要您以相同的条款对新创作进行信用和许可。 访问数以千计的免费纹理并提升您的设计游戏 - 立即开始下载! 28. 3DXO 即使有近 620 个免费贴纸可供下载,3DXO 也不是最大的资源,但它的内容非常有用,不需要注册。无论是简单的墙壁或地板,还是一些奇怪的小东西,您都需要的纹理都可以在此网站上看到。 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 29. 3DModelsCC0 3DModelsCC0 与其他产品的不同之处在于它包含超过 250+ 个高质量 3D 模型,并且本网站上的所有内容都是免费的,完全是公共领域!使用我们的模型时无需信用或归属! 使用说明:为每个人提供完全免费的公共领域内容。 30.Sketch up texture club Sketchup Texture Club是一个非营利性的教育和信息门户网站,由3D社区的图像促进协会管理,特别强调面向学生和建筑和室内设计专业人士的可视化和渲染技术,以及所有正在学习3D可视化的人。 使用说明:您无需支付版税或使用费。纹理可以免费下载和使用。不允许将纹理作为竞争产品出售或重新分发,即使图像被修改也是如此。 31. FlippedNormals FlippedNormal 是一个提供计算机图形和 3D 资产的市场,您可以找到许多用于雕刻、建模、纹理、概念艺术、3D 模型、游戏资产或课程的高级资产! 使用说明:使用权限可能因型号而异。因此,在下载文件之前,请仔细检查每个下载页面上的许可证和使用权限。 32. NASA 3D NASA 3D网站是一个在线门户,提供与太空和各种NASA任务相关的大量三维模型和模拟。该网站是用户友好的,并提供有关每个型号的详细信息。该网站允许用户探索和下载几种不同格式的模型,包括 OBJ、STL 和 FBX,只需单击下载按钮即可。 使用说明: 要下载模型,只需单击模型页面上的下载按钮并选择所需的格式。 33. 3DAGOGO (Astroprint) 3DAGOGO 是一个提供广泛 3D 模型的网站,包括角色、车辆和建筑物。3DAGOGO 的独特功能之一是它专注于适合 3D 打印的模型,使其成为希望创建物理原型或模型的设计师的绝佳资源。要使用 3DAGOGO,设计师只需在网站上搜索他们正在寻找的模型类型,然后下载 STL 格式的文件。 使用说明: 要使用 3DAGOGO,只需搜索所需的 3D 模型类型并下载 STL 格式的文件。根据需要自定义模型,并确保在将其用于商业目的之前检查使用权限。 34. FreeCAD FreeCAD是一款了不起的3D建模软件,可让您在计算机上创建令人难以置信的3D设计。该软件可免费下载和使用,它提供了广泛的工具和功能,可用于创建用于各种目的的3D模型。 该网站易于浏览,您可以找到开始使用FreeCAD的所有必要信息。此外,该网站还提供一系列教程和指南,可帮助您了解 3D 建模的来龙去脉。 使用说明: 要下载模型,请访问网站并从库中选择所需的模型。该网站还提供了一系列使用该软件的教程和指南。 35. Pinshape Pinshape是一个提供一系列3D打印模型的网站。网站上提供的型号质量很高,因此您可以确保您的最终印刷产品看起来很棒。该网站提供了广泛的模型,包括从家居用品到小雕像和珠宝的所有物品。 但这还不是Pinshape所能提供的全部!该网站还允许用户上传和共享自己的3D模型。这意味着您不仅可以下载出色的模型,还可以通过分享自己的设计为社区做出贡献。此外,Pinshape 提供了一系列自定义选项,因此您可以调整和调整模型以满足您的特定需求。 使用说明: 要下载模型,请在网站上创建一个帐户,搜索所需的模型,然后单击下载按钮。该网站还为每种型号提供了一系列定制选项。 36.Yeggi Yeggi 提供了大量免费的 3D 模型,您可以下载各种格式的模型,例如 STL、OBJ 和 FBX。该网站易于使用,您可以按关键字、类别或特定网站搜索模型。 Yeggi 对于任何寻找 3D 模型的人来说都是一个很好的资源。它提供了大量的模型集合,从日常物品到复杂的机械,以及介于两者之间的一切。该网站的收藏量在不断增长,每天都有新的型号增加。 使用说明: 要下载模型,请在网站上搜索所需的模型,然后单击下载按钮。该网站还提供指向托管模型的原始网站的链接。 37. Open3DModel 来自开放3D模型的图像 Open3DModel具有各种类别的模型,包括建筑,车辆和角色。无论您需要建筑物,汽车还是人的3D模型,都可以在此网站上找到。 该网站易于浏览,您可以按类别或关键字搜索模型。每个模型都附带预览图像和详细信息,例如文件格式、大小和多边形数量。此信息可以帮助您选择适合您需求的模型。 使用说明: 要下载模型,请访问网站,从库中选择所需的模型,然后单击下载按钮。 使用最好的 3D 资产管理工具简化您的 3D 制作流程。立即试用它们,将您的 3D 项目提升到一个新的水平! 38. 3DExport 对于那些为其 3D 设计项目寻找 3D 模型、纹理和其他资源的人来说,该平台是一个很好的资源。该网站有大量模型可供选择,包括 3D 打印对象、游戏资产等。用户可以按类别、文件格式或价格范围浏览,以找到适合其项目的完美资源。此外,3DExport 还提供一系列教程和其他 3D 资源,以帮助用户提高技能并创建更令人印象深刻的设计。 使用说明: 要使用 3DExport,只需创建一个帐户并浏览可用型号。您可以按类别、格式和价格进行搜索,以找到所需的型号。找到喜欢的模型后,只需下载它并开始在您的项目中使用它。 39.Blend Swap Blend Swap是一个社区驱动的市场,提供与Blender软件兼容的各种免费3D模型。该平台允许用户共享和下载模型、纹理和其他资产,以便在他们的项目中使用。 使用说明: 创建免费帐户后,您可以浏览社区上传的大量3D模型。当您找到要使用的一个时,只需下载它并将其导入您选择的 3D 软件即可。 40. 3DShook 3DShook 是一个高级 3D 模型市场,提供一系列用于建筑、游戏等各个行业的高质量模型。该平台提供基于订阅的模型,具有不同的定价计划,允许用户访问一系列模型。 使用说明: 注册免费帐户后,只需浏览3D模型库,选择您喜欢的模型,然后以您需要的格式下载它们。 41. Smithsonian X 3D 史密森尼 X 3D 对于正在寻找历史文物和文物的高质量 3D 模型的设计师来说,这是一个独特的资源。该平台提供了大量3D模型,这些模型是根据史密森尼博物馆和研究中心中的真实物体扫描创建的。 使用说明:
-
深度学习中的不确定性量化:2020年实用技术与应用大解析 - 61页精华解读" 这份报告深入剖析了近年来深度学习领域中不确定性量化(UQ)技术的最新发展,包括其在强化学习(RL)中的运用实例。探讨了贝叶斯近似和集成学习等主流UQ方法在各个具体场景中的广泛应用,比如自动驾驶、目标识别、图像修复、医疗影像分析(如分类和分割)、文本理解(如文本分类和风险评估)、以及生物信息学等多个领域。 报告进一步梳理了UQ方法在深度学习领域的关键应用案例,并针对当前面临的挑战及未来研究方向进行了概览和展望,为这一领域的研究人员和实践者提供了有价值的参考指南。