TFX实例的环境搭建及可能涉及的问题

大家好,我是隔壁小王。本文主要是讲述在使用tfx实现官方案例的可能会遇到的一些报错及解决方法。

在学习tfx的使用时,首先接触的是一个官方给出的案例,案例讲的是一个关于芝加哥出租车的模型:https://github.com/tensorflow/tfx/tree/master/examples/chicago_taxi_pipeline。在这个github项目中,chicago_taxi_pipeline/README.md将这个用例的实现流程讲述的比较清晰,下面我基于这个md文件将这个案例及环境的实现步骤复现一遍。

 

环境:centos7,python2。

这里要说明下,tfx实际上就是一种airflow或者kubeflow(下面默认以airflow为例)的应用。airflow是一种工作流的管理框架,这个框架目前是依赖python2来写的,那么如果不对airflow相关的代码进行修改,默认情况下只能使用python2和linux的环境。所以说其实tfx之所以叫端对端的管道,理解了airflow就知道他就是一套负责从数据到模型的管理调度的框架。

 

步骤

1.创建虚拟环境

图方便省事还是建议创建个虚拟环境为好。

pip install python-virtualenv

virtualenv 虚拟环境目录(创建的虚拟环境文件就会保存在此)

virtualenv -p 本地python路径 虚拟环境目录(指定你创建的虚拟环境用python几)

source ./虚拟环境目录/bin/activate(激活虚拟环境)

 

2.配置环境变量

为了后续方便,提前设置一些快捷路径:

export AIRFLOW_HOME=~/airflow

export TAXI_DIR=~/taxi

export TFX_DIR=~/tfx

 

3.安装依赖包

pip install tensorflow==1.12

pip install docker

export SLUGIFY_USES_TEXT_UNIDECODE=yes

pip install apache-airflow

pip install tfx==0.12.0

 

4.初始化airflow的数据库

airflow initdb

airflow内部集成了sqllite,默认情况下就是用的这个数据库。如果要连接mysql或者mongodb可以了解airflow的相关的配置资料,这里提供airflow的官方网站:https://airflow.apache.org/concepts.html

 

5.启动服务及遇到的问题

5.1

在当前窗口执行命令:airflow webserver

airflow内部集成了flask webserver,执行这个指令会启动一个web服务,这个web服务的目的是为了显示和管理airflow的整个流程。

bug1:

至此,你可能会遇到一个报错:importerror ‘glibcxx__3.4.21’,就是没有这个依赖包。

这个依赖包是一个底层的C++库,我看了若干企业服务器、个人虚拟机和一台2017款mac,gcc版本都是4,而且glibc也停留在3.4.20以下,查看的指令是:string /usr/lib64/libstdc++.so.6 | grep GLIBCXX。

这个问题的解决方法有两种:

       1.升级gcc,升到6再重新编译,我试过发现挺烦的;

       2.直接升级依赖包。

毫无疑问使用方法2,下载新版依赖包:wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.2.0-7_amd64.deb。注意,最后这个依赖包的版本可能会更新,不一定是这个。

解压:ar -x libstdc++6_8.2.0-7_amd64.deb,生成了文件data.txr.xz,需要转成gz:xz -d data.tar.xz。

接着继续解压:tar -zvxf data.tar.gz,得到了最终目标文件夹。

更新软链接:

        rm /usr/lib64/libstdc++.so.6;

        cp usr/lib/x86_64-linux-gnu/libstdc++.s0.6.0.25 /usr/lib64;(注意空格)

        ln /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6。

在瞅一眼:string /usr/lib64/libstdc++.so.6 | grep GLIBCXX,看看更新了没。

bug2:

恭喜你,进入了下一个关卡:importerror GLIBC_2.18,这个处理起来比较简单。

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz

tar zxf glibc-2.18.tar.gz;

cd glibc-2.18/;

mkdir build;

cd build;

../configure --prefix=/usr;

make -j2;

make install。

bug3:

还有一个可能存在的问题,就是airflow的server默认端口是8080,这个端口如果你的服务器上已经被占用也用提示连接失败,可以修改一下端口号。1.指令后加-p可以指定端口;2.也可以在配置文件中修改,还记得刚刚加的环境变量~/airflow吗?在这个路径下会生成一个airflow.cfg文件,这就是airflow的配置文件,进入修改端口即可。

bug4:

如果运气不好,可能会出现:没有tfx/proto/evaluator_pb2这个文件,该文件是需要运行tfx这个目录下setup.py后自动生成的。直接运行还会提示没有protoc,因为还需要安装protobuf才能解决,安装流程较为复杂,这里给出一个可以解决的教程:https://blog.csdn.net/u013210620/article/details/81317731

基本上坑就踩到此为止了,只有把这些坑填上,你才能运行一个tfx案例。

 

5.2

再打开一个虚拟窗口,执行指令:airflow scheduler

scheduler是一个调度的功能,在airflow中被独立写成一个服务,这个服务的功能这里暂且可以简单理解为安排任务给工作流的各个节点执行。

 

6.查看结果

服务器上的centos是没有可视化界面的,因此要查看airflow的界面,就需要利用局域网内其他的机器,找个能ping通服务器的台式机,假设服务器ip是xx.xx.xx.xx,端口设置为:18888。则在浏览器中输入:xx.xx.xx.xx:18888,就可以看到airflow的界面了:

至于airflow界面的各个模块的作用和操作方法本文就不多加赘述了。

要搭建tf-gpu环境,首先需要确保你的机器上有合适的GPU设备。接下来,你需要按照以下步骤进行操作: 1. 安装CUDA和cuDNN:CUDA是NVIDIA开发的并行计算平台,而cuDNN是一个加速深度神经网络的库。你需要根据你的GPU型号和操作系统版本选择合适的CUDA和cuDNN版本,并按照官方文档的指引进行安装。 2. 安装Anaconda:Anaconda是一个常用的Python发行版,它包含了很多科学计算和机器学习相关的包。你可以从Anaconda官方网站下载适合你的操作系统的安装包,并按照官方指引进行安装。 3. 创建虚拟环境:打开终端或命令行窗口,输入以下命令创建一个名为tf-gpu的虚拟环境,并指定Python版本为3.8: ``` conda create -n tf-gpu python=3.8 ``` 4. 激活虚拟环境:输入以下命令激活tf-gpu环境: ``` conda activate tf-gpu ``` 5. 安装TensorFlow-GPU:在激活的虚拟环境下,输入以下命令安装TensorFlow-GPU: ``` pip install tensorflow-gpu ``` 6. 验证是否成功:在Python交互环境下,导入TensorFlow并执行以下代码验证是否成功安装了TensorFlow-GPU,并输出GPU的名称: ```python import tensorflow as tf print(tf.test.is_gpu_available()) print(tf.test.gpu_device_name()) ``` 如果输出结果为True,并显示了GPU的名称,则说明tf-gpu环境搭建成功了。 请注意,以上步骤中的具体命令和操作可能会因为操作系统版本和环境配置的不同而略有差异。建议你参考TensorFlow和Anaconda的官方文档以确保正确安装和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【DL】搭建属于自己的GPU深度学习环境](https://blog.csdn.net/weixin_47274607/article/details/122381473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [手把手教你搭建属于自己的GPU深度学习环境](https://blog.csdn.net/qq_28053421/article/details/117875784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值