__future__
from __future__ import print_function # 在 py2 的代码中使用py3 的print 函数,py2 中 print 'abc' 将会报错
from __future__ import division # 引入,使得 1/2=0.5 而不是 0
setuptools(setup.py)
自己创建python关联包
#创建egg 包
from setuptools import setup
from setuptools import find_packages
setup(name='gcn', #包名
version='1.0', # 版本号
description='Graph Convolutional Networks in Tensorflow',
author='Thomas Kipf',
author_email='thomas.kipf@gmail.com',
url='https://tkipf.github.io',
download_url='https://github.com/tkipf/gcn',
license='MIT',
install_requires=['numpy',
'tensorflow',
'networkx',
'scipy'
],
package_data={'gcn': ['README.md']},
packages=find_packages())
tuple
list = [1,2,3,4]
a,b,c,d = tuple(list)
a= 1;b=2;c=3;d=4
dict.update()
dict1.update(dict2) # 将dict2 的字典在dict1 中更新
Tensorflow
"Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。我们知道,很多python程序的底层为C语言或者其他语言,执行一行脚本,就要切换一次,是有成本的,tensorflow通过计算流图的方式,帮你优化整个session需要执行的代码,还是很有优势的。"
“在TensorFlow的世界里,变量的定义和初始化是分开的,所有关于图变量的赋值和计算都要通过tf.Session的run来进行。”
tf.placeholder()
在tensorflow 构建的图中为变量进行占位,在实际运行过程前使用 feed_dict() 对变量进行赋值。
参数为: 类型、维度、名称
tf.truncated_normal()
产生截断的服从正态分布的数据,均值、方差自己设置,如果产生的随即参数与均值的差大于两倍方差,则会重新产生
参数:维度、均值、方差
tf.Variable()
初始化图变量,第一个变量为初始化值,且必填,如果name参数有,则将这个变量名称的参数值传给当前,否则新建一个并且初始化,trainable可以控制是否参与网络优化——是否是可优化参数
参数:初始化值,trainable=True,name=‘’,######
tf.matmul()
参数中的矩阵进行矩阵乘法,参数中有控制矩阵做乘法前是否
tf.multiply()
参数中的矩阵对应元素相乘
tf.gather()
参数:队列、索引
将索引指向的值在列表中抽出来组成新的队列
tf.nn.softmax_cross_entropy_with_logists_v2()
计算softmax(logits) 和 label 之间交叉熵的函数
tf.reduce_sum()
压缩求和,可以设置按行或者列压缩求和
numpy
np.eye()
生成可以用于生成one-hot 编码 np.eye(3)[0] : [1, 0, 0]
参数:数组维度,k控制对角元移动个数(默认为对角是1,k=0)
np.indentity()
生成对角方阵