【TensorFlow2】讀寫matlab變量 & 張量操作

在科研中,matlab對矩陣處理有優(yōu)勢,而python語言對神經(jīng)網(wǎng)絡(luò)熱門框架,譬如TensorFlow、Pytorch等都支持,所以難免會(huì)有需要跨平臺處理。本文主要分享一種簡便的處理方法:在.mat格式的文件中寫入讀取數(shù)據(jù),因?yàn)?mat格式matlab和python都支持。

一、讀寫matlab變量

  • python中讀寫.mat數(shù)據(jù)文件
import tensorflow as tf
import scipy.io as io
import numpy as np

# 將.mat文件讀取為字典變量InputData
InputData = io.loadmat('MatlabData.mat')
# 從字典變量中讀取變量
A = tf.constant(InputData['A'])
A = tf.cast(A, dtype = tf.float32)
B = tf.constant(InputData['B']) 
......
A = np.mat(A.numpy())
B = np.mat(B.numpy())
# 將變量A保存為X,將變量B保存為Y,并寫入到.mat文件
io.savemat('PythonData.mat',{'X':A, 'Y':B})
  • matlab中讀寫.mat數(shù)據(jù)文件
load PythonData

save MatlabData            #保存全部變量
save MatlabData A B;       #保存指定變量A、B
save ('MatlabData.mat', 'A','B');

二、張量的理解

2.1 初始化張量
# 定義一個(gè)隨機(jī)數(shù)(標(biāo)量)
random_float = tf.random.uniform(shape=())
# 定義一個(gè)有2個(gè)元素的零向量
zero_vector = tf.zeros(shape=(2))
# 定義兩個(gè)2×2的常量矩陣
A = tf.constant([[1., 2.], [3., 4.]])
2.2 輸出張量特征
# 查看矩陣A的形狀、類型和值
print(A.shape)      # 輸出(2, 2),即矩陣的長和寬均為2
print(A.dtype)      # 輸出<dtype: 'float32'>
print(A.numpy())    # 輸出[[1. 2.]
                    #      [3. 4.]]
2.3 基本張量操作
C = tf.add(A, B)      # 計(jì)算矩陣A和B的和
D = tf.matmul(A, B)   # 計(jì)算矩陣A和B的乘積
E = tf.mutiply(A, 1)  # 計(jì)算矩陣A與1的數(shù)乘
tf.square(x)          # 對張量x每個(gè)元素平方,并返回同維度張量
tf.log(x)             # 對張量x每個(gè)元素求自然對數(shù),同上

tf.reduce_sum(x)      # 對所有元素求和,返回0維張量(標(biāo)量)
# tf.reduce_sum(x,0)  # 求列和(縱向求和)
# tf.reduce_sum(x,1)  # 求行和(橫向求和)
tf.reduce_mean()      # 用法類似于tf.reduce_sum、tf.reduce_max
參考鏈接
  1. 簡單粗暴TensorFlow2.0
  2. TensorFlow2.0 tutorials
  3. 張量的數(shù)學(xué)運(yùn)算
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容