vgg16中的函数

1、inspect.getfile(文件名)文件名一般与类名相同,返回文件目录包含文件名

import inspect
class os测试:
def __init__(self):
path = inspect.getfile(os测试)
     print(path)

结果:
G:/Android/tensorflow-vgg-master/os测试.py

2、os.pardir  返回当前目录上一级

import inspect
import os

class os测试:
def __init__(self):
path = inspect.getfile(os测试)
print(path)
path = os.path.abspath(os.path.join(path,os.pardir))
print(path)



vgg = os测试()


结果:
G:/Android/tensorflow-vgg-master/os测试.py
G:Android ensorflow-vgg-master

3、os.path.abspath() 返回绝对路径

os.path.abspath('test.csv')
'C:\Python25\test.csv'

4、np.load()

Numpy能够读写磁盘上的文本数据或二进制数据。

将数组以二进制格式保存到磁盘

np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中。

import numpy as np
A = np.arange(15).reshape(3,5)
print(A)
np.save('A.npy',A) #如果文件路径末尾没有扩展名.npy,该扩展名会被自动加上。
C = np.load('A.npy')
print(C)



结果:

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

注:保存为Numpy专用的二进制格式后,就不能用notepad++等打开看了(乱码)。因此这种方式建议在不需要看保存文件内容的情况下使用。

5、tf.split()

tf.split函数

split(
    value,
    num_or_size_splits,
    axis=0,
    num=None,
    name='split'
)

定义在:tensorflow/python/ops/array_ops.py

参见指南:张量变换>切割和连接

将张量分割成子张量。

如果 num_or_size_splits 是整数类型,num_split,则 value 沿维度 axis 分割成为 num_split 更小的张量。要求 num_split 均匀分配 value.shape[axis]。

如果 num_or_size_splits 不是整数类型,则它被认为是一个张量 size_splits,然后将 value 分割成 len(size_splits) 块。第 i 部分的形状与 value 的大小相同,除了沿维度 axis 之外的大小 size_splits[i]。

例如:

Split 'A' into 2 tensors along dimension 1
import tensorflow as tf
import numpy as np
A = [[1,2,3],[4,5,6]]
x = tf.split(A, num_or_size_splits=2, axis=0)
with tf.Session() as sess:
c = sess.run(x)
print(c)
for ele in c:
print(ele)


结果:
[array([[1, 2, 3]]), array([[4, 5, 6]])]
[[1 2 3]]
[[4 5 6]]

# Split 'value' into 2 tensors with sizes [1,2] along dimension 1
import tensorflow as tf
import numpy as np
A = [[1,2,3],[4,5,6],[1,2,3],[1,2,3],[1,2,3]]
x = tf.split(A, [1,2], axis=1)
with tf.Session() as sess:
c = sess.run(x)
print(c)
for ele in c:
print(ele)
结果:
[array([[1],
       [4],
       [1],
       [1],
       [1]]), array([[2, 3],
       [5, 6],
       [2, 3],
       [2, 3],
       [2, 3]])]
[[1]
 [4]
 [1]
 [1]
 [1]]
[[2 3]
 [5 6]
 [2 3]
 [2 3]
 [2 3]]

函数参数:


  • value:要分割的 Tensor。
  • num_or_size_splits:指示沿 split_dim 分割数量的 0-D 整数 Tensor 或包含沿 split_dim 每个输出张量大小的 1-D 整数 Tensor ;如果为一个标量,那么它必须均匀分割 value.shape[axis];否则沿分割维度的大小总和必须与该 value 相匹配。
  • axis:A 0-D int32 Tensor;表示分割的尺寸;必须在[-rank(value), rank(value))范围内;默认为0。
  • num:可选的,用于指定无法从 size_splits 的形状推断出的输出数。
  • name:操作的名称(可选)。

函数返回值:


如果 num_or_size_splits 是标量,返回 num_or_size_splits Tensor对象;如果 num_or_size_splits 是一维张量,则返回由 value 分割产生的 num_or_size_splits.get_shape[0] Tensor对象。


函数可能引发的异常:


  • ValueError:如果 num 没有指定并且无法推断。

 



 
原文地址:https://www.cnblogs.com/qqw-1995/p/9761351.html