Tensorflow运行

1.FLAGS = tf.app.flags.FLAGS
执行main函数之前首先进行flags的解析,也就是说TensorFlow通过设置flags来传递tf.app.run()所需要的参数,我们可以直接在程序运行前初始化flags,也可以在运行程序的时候设置命令行参数来达到传参的目的。

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')
flags.DEFINE_integer('epoch_number', None, 'Number of epochs to run trainer.')
flags.DEFINE_integer("thread_number", 10 , "Number of thread to read data")
flags.DEFINE_string("mode", "train", "Option mode: train, train_from_scratch, inference")

2.xml.etree.cElementTree
python 使用ElementTree解析xml
2.1 解析
1)调用parse()方法,返回解析树
python3.3之后ElementTree模块会自动寻找可用的C库来加快速度

try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET
tree = ET.parse("country.xml")  # <class 'xml.etree.ElementTree.ElementTree'>
root = tree.getroot()           # 获取根节点 <Element 'data' at 0x02BF6A80>

2)调用from_string(),返回解析树的根元素

import xml.etree.ElementTree as ET
data = open("country.xml").read()
root = ET.fromstring(data)   # <Element 'data' at 0x036168A0>

3)调用ElementTree类ElementTree(self, element=None, file=None) # 这里的element作为根节点

import xml.etree.ElementTree as ET
tree = ET.ElementTree(file="country.xml")  # <xml.etree.ElementTree.ElementTree object at 0x03031390>
root = tree.getroot()  # <Element 'data' at 0x030EA600>

2.2 遍历
1)简单遍历

import xml.etree.ElementTree as ET

tree = ET.parse("country.xml")
root = tree.getroot()
print(root.tag, ":", root.attrib)  # 打印根元素的tag和属性
#遍历xml文档的第二层
for child in root:
    # 第二层节点的标签名称和属性
    print(child.tag,":", child.attrib) 
    # 遍历xml文档的第三层
    for children in child:
        # 第三层节点的标签名称和属性
        print(children.tag, ":", children.attrib)

可以通过下标的方式直接访问节点
访问根节点下第一个country的第二个节点year,获取对应的文本
year = root[0][1].text # 2008

2)ElementTree提供的方法


find(match) # 查找第一个匹配的子元素, match可以时tag或是xpaht路径
findall(match) # 返回所有匹配的子元素列表
findtext(match, default=None) #
iter(tag=None) # 以当前元素为根节点 创建树迭代器,如果tag不为None,则以tag进行过滤
iterfind(match) #

例子:

#过滤出所有neighbor标签
for neighbor in root.iter("neighbor"):
    print(neighbor.tag, ":", neighbor.attrib)
#遍历所有的counry标签
for country in root.findall("country"):
    # 查找country标签下的第一个rank标签
    rank = country.find("rank").text
    # 获取country标签的name属性
    name = country.get("name")
    print(name, rank)
### 解决 TensorFlow 运行时与 AVX 指令集相关的兼容性或性能问题 #### 使用预编译的 TensorFlow 轮子提高兼容性和性能 为了确保 TensorFlow 可以利用现代 CPU 的高级矢量化扩展(如 AVX 和 FMA),可以考虑使用经过优化的 TensorFlow 预编译轮子。这些轮子由第三方维护者构建,旨在最大化不同硬件平台上的性能表现[^1]。 ```bash pip install --upgrade pip pip install tensorflow==1.12.0 -f https://gitcode.com/gh_mirrors/te/tensorflow-optimized-wheels ``` 上述命令安装了一个特别针对具备 AVX2 支持的 CPU 架构做了优化的 TensorFlow 版本,从而提高了计算密集型任务的速度和效率[^2]。 #### 修改 TensorFlow 编译选项增强指令集支持 如果希望进一步定制 TensorFlow 对特定 CPU 功能的支持程度,则可以通过自定义源码来实现这一点。具体来说,在配置阶段启用相应的标志位能够使最终生成的应用程序更好地适应底层硬件环境: ```shell ./configure # 当提示输入 CXX OPTS 时加入如下参数: -D_GLIBCXX_USE_CXX11_ABI=0 \ -march=native \ -O3 \ -funroll-loops \ -ftree-vectorize \ -finline-functions-called-once \ -flto \ -Wno-sign-compare bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package ``` 这里 `-march=native` 参数指示编译器尽可能多地利用本地系统的特殊功能,包括但不限于 AVX、FMA 等向量运算单元;其他优化标记也有助于减少不必要的开销并加快执行过程[^4]。 #### 利用 TensorRT 或 OpenVINO 工具包改善推理效能 除了调整软件层面的因素外,还可以借助 NVIDIA 提供的 TensorRT 或 Intel 推出的 OpenVINO™ Toolkit 来加速模型部署后的实际运行效果。这两个工具都专注于降低延迟时间以及增加吞吐率,尤其适合那些对实时响应有较高需求的服务端应用场合[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值