Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Convert tensor object to numpy array #364

Open
shoriuchi1970 opened this issue Apr 23, 2020 · 0 comments
Open

Convert tensor object to numpy array #364

shoriuchi1970 opened this issue Apr 23, 2020 · 0 comments

Comments

@shoriuchi1970
Copy link

Hi. everyone

Please tell me about How to convert tensor object to numpy array in keras programing for deep-learning.

Now I make the following programing code of semating segmentation with python on keras-tensorflow platform.
Running the model fit and get the model output, I want to convert tensor object corresponding to model output to numpy array. But there is the following error.

Error:

Epoch 1/5
1/10 [==>...........................] - ETA: 11s - loss: 2.7155 - 5/10 [==============>...............] - ETA: 1s - loss: 2.8642 - a 9/10 [==========================>...] - ETA: 0s - loss: 2.7524 - a10/10 [==============================] - 2s 172ms/step - loss: 2.7148 - accuracy: 0.0419 - val_loss: 1.7582 - val_accuracy: 0.1053
Epoch 2/5
1/10 [==>...........................] - ETA: 0s - loss: 2.8022 - a 5/10 [==============>...............] - ETA: 0s - loss: 2.6346 - a 9/10 [==========================>...] - ETA: 0s - loss: 2.5909 - a10/10 [==============================] - 0s 19ms/step - loss: 2.6262 - accuracy: 0.0519 - val_loss: 2.4169 - val_accuracy: 0.1439
Epoch 3/5
1/10 [==>...........................] - ETA: 0s - loss: 2.5856 - a 4/10 [===========>..................] - ETA: 0s - loss: 2.6392 - a 5/10 [==============>...............] - ETA: 0s - loss: 2.6724 - a 7/10 [====================>.........] - ETA: 0s - loss: 2.7038 - a 8/10 [=======================>......] - ETA: 0s - loss: 2.7045 - a 9/10 [==========================>...] - ETA: 0s - loss: 2.6891 - a10/10 [==============================] - 0s 41ms/step - loss: 2.6768 - accuracy: 0.0811 - val_loss: 2.1290 - val_accuracy: 0.3055
Epoch 4/5
1/10 [==>...........................] - ETA: 0s - loss: 2.7163 - a 2/10 [=====>........................] - ETA: 0s - loss: 2.6762 - a 4/10 [===========>..................] - ETA: 0s - loss: 2.6826 - a 5/10 [==============>...............] - ETA: 0s - loss: 2.6591 - a 7/10 [====================>.........] - ETA: 0s - loss: 2.5913 - a 8/10 [=======================>......] - ETA: 0s - loss: 2.5808 - a 9/10 [==========================>...] - ETA: 0s - loss: 2.6193 - a10/10 [==============================] - 1s 52ms/step - loss: 2.6087 - accuracy: 0.0908 - val_loss: 2.1647 - val_accuracy: 0.5914
Epoch 5/5
1/10 [==>...........................] - ETA: 0s - loss: 2.5523 - a 2/10 [=====>........................] - ETA: 0s - loss: 2.5476 - a 3/10 [========>.....................] - ETA: 0s - loss: 2.4632 - a 4/10 [===========>..................] - ETA: 0s - loss: 2.5363 - a 6/10 [=================>............] - ETA: 0s - loss: 2.4754 - a 8/10 [=======================>......] - ETA: 0s - loss: 2.5135 - a10/10 [==============================] - 1s 51ms/step - loss: 2.5008 - accuracy: 0.1407 - val_loss: 2.2194 - val_accuracy: 0.6505
Traceback (most recent call last):
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1365, in _do_call
return fn(*args)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1350, in _run_fn
target_list, run_metadata)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1443, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,32,32,3]
[[{{node input_1}}]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "train.py", line 49, in
numout = K.get_value(output)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 2925, in get_value
return x.eval(session=get_session())
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 798, in eval
return _eval_using_default_session(self, feed_dict, self.graph, session)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 5407, in _eval_using_default_session
return session.run(tensors, feed_dict)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 956, in run
run_metadata_ptr)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1180, in _run
feed_dict_tensor, options, run_metadata)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1359, in _do_run
run_metadata)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1384, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,32,32,3]
[[node input_1 (defined at /home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py:1748) ]]

Original stack trace for 'input_1':
File "train.py", line 10, in
model = model.unet()
File "/home/shoriuchi/VOC2012/model.py", line 33, in unet
input = Input((32, 32, 3))
File "/home/shoriuchi/.local/lib/python3.6/site-packages/keras/engine/input_layer.py", line 178, in Input
input_tensor=tensor)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/keras/engine/input_layer.py", line 87, in init
name=self.name)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 736, in placeholder
shape=shape, ndim=ndim, dtype=dtype, sparse=sparse, name=name)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/keras/backend.py", line 1051, in placeholder
x = array_ops.placeholder(dtype, shape=shape, name=name)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/ops/array_ops.py", line 2619, in placeholder
return gen_array_ops.placeholder(dtype=dtype, shape=shape, name=name)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/ops/gen_array_ops.py", line 6669, in placeholder
"Placeholder", dtype=dtype, shape=shape, name=name)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/op_def_library.py", line 794, in _apply_op_helper
op_def=op_def)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 3357, in create_op
attrs, op_def, compute_device)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 3426, in _create_op_internal
op_def=op_def)
File "/home/shoriuchi/.local/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 1748, in init
self._traceback = tf_stack.extract_stack()

Programing code is written as follows:

import model
import data_gen
import callbacks
import matplotlib.pyplot as plt
import sys
import tensorflow as tf
import numpy as np
from keras import backend as K

model = model.unet()
model.summary()

train_gen = data_gen.trainGenerator('./VOC-train', batch_size=5)
validation_gen = data_gen.trainGenerator('./VOC-test', batch_size=5)

history = model.fit_generator(
generator=train_gen,
steps_per_epoch=10,
epochs=5,
validation_data=validation_gen,
validation_steps=5
)

output = model.output
numout = K.get_value(output)
print(numout)

epochs=5

val_acc = history.history['val_accuracy']
val_loss = history.history['val_loss']

plt.rc('font',family='serif')
fig = plt.figure()
plt.plot(range(epochs), val_acc, label='acc', color='black')
plt.xlabel('epochs')
plt.savefig('semanticsegmantation.png')

Please tell me how to convert tensor object to numpy array.

I am sured that the basic program of converting tensor object to numpy array work well.

Basic program:

import tensorflow as tf
import numpy as np
from keras import backend as K

c = tf.constant([[1.0,2.0],[3.0,4.0]])
print(c)
A = K.eval(c)
print(A)
print(A[1,1])

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant