![](/img/trans.png)
[英]why “NumPy operations convert Tensors to numpy arrays automatically”? how does this feature been implemented?
[英]Convert arrays and tensors to matrices then perform matrix operations
我有兩個大小為 (128,) 的數組和第三個大小為 (784, 128) 的數組:
array1.shape()
out: (128,)
array2.shape()
out: (128,)
array3.shape()
out: (784,128)
它們具有相同的數據類型,但dtype()
輸出不同:
array1.dtype
out: float32
array2.dtype
out: <dtype: 'float32'>
array2.dtype
out: <dtype: 'float32'>
它們屬於不同的類:
type(array1)
out: <class 'numpy.ndarray'>
type(array2)
out: <class 'tensorflow.python.ops.resource_variable_ops.ResourceVariable'>
type(array3)
out: <class 'tensorflow.python.ops.resource_variable_ops.ResourceVariable'>
我想執行以下矩陣運算:
(array1 - array2) * array3.T
其中 T 是 array3 的轉置。
最后,輸出矩陣(即 [784 * 1])需要重新整形以成為形狀為 28 * 28 的 uint8 數組,以便我可以在matplotlip
上plot
該輸出。
誰能幫我先把數組轉換成矩陣。 然后正確轉置第三個數組。 最后,將輸出重塑為大小為 28 * 28 的 uint8 數組。
我正在 python 中使用 tensorflow 和 keras。
將 array1 轉換為np.asmatrix()
array1 = np.asmatrix(array1)
對於 array2,將其更改為 numpy array fist,然后將其轉換為矩陣:
array2 = array2.numpy()
array2 = np.asmatrix(array2)
對於 array3,首先將其更改為 numpy 數組,然后將其轉換為矩陣。 最后,轉置該矩陣:
array3 = array3.numpy()
array3 = np.asmatrix(array3)
array3 = np.transpose(array3)
最后,應用矩陣運算:
result = (array1 - array2) * array3
要繪制輸出,請使用以下命令:
result = np.array(result)
plt.imshow(result.reshape(28, 28), cmap='gray')
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.