2017-07-24 44 views
0

我想運行一個Keras模型,在該模型中,我從一個文件夾將88個圖像讀入numpy數組。這個數組應該被轉換成Keras張量,以便我可以使用模型中的數據。我運行下面的代碼:將Tensorflow數組轉換成Keras數組

import os 
import numpy as np 
from PIL import Image 
from keras import backend as K 

current_dir = os.path.dirname('__file__') 
image_names = os.listdir(os.path.join(current_dir, 'images')) 
images = np.ndarray((len(image_names), 256, 256), dtype=np.uint8) 
for i, filename in enumerate(image_names): 
    images[i] = Image.open(os.path.join(current_dir, 
             'images', 
             filename)).resize((256, 256)).convert('L') 
images = images.astype(K.floatx()) 
images *= 0.96/255 
images += 0.02 
images = images.reshape(images.shape[0], 256, 256, 1) 

print(images.shape) 
cats_q = K.variable(images) 
print(type(cats_q)) 
print(K.is_keras_tensor(cats_q)) 

我得到以下輸出

(87, 256, 256, 1) 
<class 'tensorflow.python.ops.variables.Variable'> 
False 

我怎麼能輸出轉換成Keras張量?任何幫助將非常感激!

非常感謝, 安迪

回答

0

你應該先建立自己的模型,包括一個具有正確大小用來處理這些數據的輸入張量,那麼numpy的數組傳遞給keras模型時,你所說的「合適」功能。

當您建立keras模型時,張量是計算圖中的邊。你不想用一個值初始化它,而是用一個大小,然後在必要時傳遞值。

This page關於keras功能性API有一些很好的例子。