NoneTenorflow sess.run(xxx, feed_dict) ValueError: не удалось преобразовать строку в число с плавающей точкой:
Я пытаюсь реализовать модель resnet18 для идентификации нескольких изображений по меткам. Набор данных состоит из 2 .npy
файлы, в первой 400 матрицы 512*512*1
изображения хранятся; во втором хранятся названия этих изображений и их метки.
print(train_feed_dict[self.x][0])
[[[ 11 0 0]
[ 0 4 0]
[ 0 7 0]
...
[ 3 2 0]
[ 7 0 1]
[ 10 0 2]]
...
[[ 1 24 92]
[ 11 24 92]
[ 17 22 78]
...
[ 0 0 0]
[ 0 0 0]
[ 0 0 0]]]
print(train_feed_dict[self.y][0:10])
[['VSFM7uUw' '3']
['J2tDltQ3' '16']
['Pr9SGexh' '2']
['CfwhN3G1' '9,8']
['mKR5To95' '9,10,1,2']
['ZLNOmXFa' '12']
['UaQPQ0XN' '0']
['hNCvKG2x' '0']
['wZYmeZoK' '4']
['Iqg9FkqJ' '0']]
print(train_feed_dict[self.lr])
0.0032768`
train_feed_dict
определяется так:
train_feed_dict = {
self.x : train_batch_x,
self.y : train_batch_y,
self.lr : epoch_lr
}
`
Определение train_batch_x и train_batch_y `
train_batch_x, train_batch_y = self.get_train_batch(train_index, idx)
definition of get_train_batch:
def get_train_batch(self, xx, idx):
return self.train_x[idx * self.batch_size:
(idx+1)*self.batch_size], \
self.train_y[idx * self.batch_size:
(idx+1)*self.batch_size],
`
определение self.train_x и self.train_y: `
self.train_x = np.load("/home/adios/Desktop/python/0train0_x.npy")
self.train_y =
np.load("/home/adios/Desktop/python/0train0_y.npy")
`
Ошибка, которую я получаю, такова: `
Traceback (most recent call last):
File "/home/adios/Desktop/python/resnet/train.py", line 42, in <module>
main()
File "/home/adios/Desktop/python/resnet/train.py", line 31, in main
cnn.train()
File "/home/adios/Desktop/python/resnet/ResNet.py", line 403, in
train
feed_dict = train_feed_dict
File "/home/adios/.conda/envs/tensor/lib/python2.7/site-
packages/tensorflow/python/client/session.py", line 929, in run
run_metadata_ptr)
File "/home/adios/.conda/envs/tensor/lib/python2.7/site-
packages/tensorflow/python/client/session.py", line 1121, in _run
np_val = np.asarray(subfeed_val, dtype=subfeed_dtype)
File "/home/adios/.conda/envs/tensor/lib/python2.7/site-
packages/numpy/core/numeric.py", line 538, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: could not convert string to float: iqNJyqQK
`
До сих пор я пытался изменить название картинки в self.train_y
целым числам, чтобы избежать этой проблемы. например iqNJyqQk
станет 254
Это действительно пропустило это, у меня тогда была подобная проблема с лейблами, которые были в форме 2,8
Я попытался сделать то же самое и вставить в него несколько случайных целых чисел (на данный момент я просто хотел решить проблему, прежде чем получить правильные результаты). Я действительно избежал
ValueError: could not convert string to float:
ошибка, но я получил другую ошибку:
ValueError: Cannot feed value of shape (128, 2) for Tensor u'y:0',
which has shape '(?, 29)