由于我的网络一直在提供高损耗和零精度,所以我决定研究其中的张量。
我注意到我的归一化函数可以使用十进制数字,但是保留了科学计数法数字,因为这样会导致样本混乱。
经过简单的规范化和批处理之后,从文件路径和标签列表中加载了
def _parse_image(imagepath, label):
image_string = tf.read_file(imagepath)
image_decoded = tf.image.decode_jpeg(image_string, channels=3)
image_resized = tf.image.resize_images(image_decoded, [img_size, img_size])
image = image_resized * (1 / 255)
return image, label
dataset = tf.data.Dataset.from_tensor_slices((dataset_train))
dataset = dataset.map(_parse_image)
dataset = dataset.shuffle(buffer_size=1000)
dataset = dataset.batch(batch_size)
iterator = dataset.make_initializable_iterator()
train_next = iterator.get_next()
然后
batch_x, batch_y = sess.run(train_next)
op, c = sess.run([optimiser, cross_entropy], feed_dict={x: batch_x, y: np.expand_dims(batch_y, axis=-1)})
我知道这是在feed_dict中输入小数点的
[0.3425858 0.42196694 0.35618874]
[0.28829658 0.311826 0.311826 ]
[0.23520222 0.2508885 0.26069242]
这是科学计数法
[7.11764753e-01 5.84313750e-01 7.27451026e-01]
[7.07843184e-01 5.68627477e-01 7.03921616e-01]
[7.08823562e-01 5.60784340e-01 7.23529458e-01]
曾尝试过一些转换到float32的方法,但是没有用。