相关公式
[0.36424586843872840.6675075448915823]×[0.134750808390697090.5863696301031353]=[0.44048858]
[0.134750808390697090.5863696301031353]×[0.36424586843872840.6675075448915823]=[0.049082430.213582720.089947180.39140615]
结果示例
2017-08-29 13:45:18,965 - DEBUG - start tensorflow tutorial example 5 matrix multiply operation
2017-08-29 13:45:19,003 - DEBUG - MATRIX_A :
[[0.3642458684387284, 0.6675075448915823]]
2017-08-29 13:45:19,019 - DEBUG - MATRIX_B :
[[0.13475080839069709], [0.5863696301031353]]
2017-08-29 13:45:19,066 - DEBUG - OPERATION_MATMUL_A_B(PLACEHOLDER_A, PLACEHOLDER_B) :
[[ 0.44048858]]
2017-08-29 13:45:19,088 - DEBUG - OPERATION_MATMUL_B_A(PLACEHOLDER_A, PLACEHOLDER_B) :
[[ 0.04908243 0.08994718]
[ 0.21358272 0.39140615]]
源代码
# -*- coding: utf-8 -*-
"""
filename : tutorial_example_5_matmul_operation.py
author: hu@daonao.com QQ: 443089607 weixin: huzhenghui weibo: http://weibo.com/443089607
category : tensorflow
title : python tensorflow学习笔记(五)矩阵乘法运算
csdn blog url :
weibo article url :
weibo message url :
为了清晰直观展现python严格要求的缩进及数学公式,请访问博客上博文
详细说明见源代码中的注释
"""
# standard import
import logging
import random
import tensorflow
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('start tensorflow tutorial example 5 matrix multiply operation')
# 定义一个占位符矩阵,类型为float64,尺寸为一行两列
PLACEHOLDER_A = tensorflow.placeholder(tensorflow.float64, [1, 2])
# 定义一个占位符矩阵,类型为float64,尺寸为两行一列
PLACEHOLDER_B = tensorflow.placeholder(tensorflow.float64, [2, 1])
# 定义一个矩阵乘法运算,左A右B
OPERATION_MATMUL_A_B = tensorflow.matmul(PLACEHOLDER_A, PLACEHOLDER_B)
# 定义一个矩阵乘法运算,左B右A
OPERATION_MATMUL_B_A = tensorflow.matmul(PLACEHOLDER_B, PLACEHOLDER_A)
# 创建一个会话
SESSION = tensorflow.Session()
# 一个尺寸为一行两列的矩阵
MATRIX_A = [[random.random(), random.random()]]
# 一个尺寸为两行一列的矩阵
MATRIX_B = [[random.random()],
[random.random()]]
# 显示尺寸为一行两列的矩阵的值
logging.debug('MATRIX_A : \n%s', MATRIX_A)
# 显示尺寸为两行一列的矩阵的值
logging.debug('MATRIX_B : \n%s', MATRIX_B)
# 运行左A右B的矩阵乘法运算,结果是1x1矩阵
logging.debug('OPERATION_MATMUL_A_B(PLACEHOLDER_A, PLACEHOLDER_B) : \n%s', SESSION.run(OPERATION_MATMUL_A_B, feed_dict={PLACEHOLDER_A: MATRIX_A, PLACEHOLDER_B: MATRIX_B}))
# 运行左B右A的矩阵乘法运算,结果是2x2矩阵
logging.debug('OPERATION_MATMUL_B_A(PLACEHOLDER_A, PLACEHOLDER_B) : \n%s', SESSION.run(OPERATION_MATMUL_B_A, feed_dict={PLACEHOLDER_A: MATRIX_A, PLACEHOLDER_B: MATRIX_B}))
#end of file