Tensotflow1.0入门(三)-tensorflow的小例子

Tensotflow1.0入门(一)-tensorflow的设计理念和基本概念
Tensotflow1.0入门(二)-tensorflow的各种操作
Tensotflow1.0入门(三)-tensorflow的小例子
Tensotflow1.0入门(四)-tensorflow的卷积函数
Tensotflow1.0入门(五)-tensorflow的池化函数
Tensotflow1.0入门(六)-tensorflow的激活函数

# coding=utf-8
'''
Created on 2019年4月5日

@author: admin
'''

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import os

mnist = input_data.read_data_sets('mnist', one_hot=True)

trX,trY,teX,teY = mnist.train.images,mnist.train.labels,mnist.test.images,mnist.test.labels

x = tf.placeholder("float",[None,784])
y = tf.placeholder("float",[None,10])
#第一层隐藏层
w1 = tf.Variable(tf.random_normal([784,625]))
#第二层隐藏层
w2 = tf.Variable(tf.random_normal([625,625]))
#输出层
o = tf.Variable(tf.random_normal([625,10]))
#各层dropout系数
keep_prob1 = tf.placeholder("float")
keep_prob2 = tf.placeholder("float")

def model(x,w1,w2,o):
    
    x = tf.nn.relu(tf.matmul(x,w1))
    x = tf.nn.dropout(x,keep_prob1)
    
    
    x = tf.nn.relu(tf.matmul(x,w2))
    x = tf.nn.dropout(x,keep_prob2)

    return tf.matmul(x,o)
pred = model(x,w1,w2,o)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred,labels=y),name="cost")
train_op = tf.train.RMSPropOptimizer(0.001,0.9,name="train_op").minimize(cost)
#虽然前面命名为cost,但是最好还是打印出来看一下名称
print(cost)
# Tensor("cost:0", shape=(), dtype=float32)
print(train_op)
correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

with tf.Session() as sess:
    tf.initialize_all_variables().run()
    for step in range(1):
        for start,end in zip(range(0,len(trX),128),range(128,len(trX)+1,128)):
            loss,_,accuracy1 = sess.run([cost,train_op,accuracy],feed_dict={x:trX[start:end],y:trY[start:end],keep_prob1:0.8,keep_prob2:0.8})
            print(accuracy1)
        print("step",step)
        #保存模型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 TensorFlow 中,padding=1 通常是指使用 'SAME' 或 'VALID' 作为卷积层的 padding 参数,而不是具体的整数值。如果你在 TensorFlow 中使用整数值作为 padding 参数,可能会遇到 `'int' object has no attribute 'lower'` 的错误。 要解决这个问题,你需要将 padding 参数设置为字符串类型的 'SAME' 或 'VALID'。例如,使用 TensorFlow 中的 Conv2D 层进行卷积操作: ``` import tensorflow as tf # 输入数据 shape 为 [batch_size, height, width, channels] inputs = tf.random.normal([32, 224, 224, 3]) # 创建卷积层,指定 padding 参数为 'SAME' conv_layer = tf.keras.layers.Conv2D(filters=32, kernel_size=3, padding='SAME') # 进行卷积操作 outputs = conv_layer(inputs) ``` 在上述代码中,padding 参数被设置为 'SAME',这意味着 TensorFlow 会在输入数据的边缘周围自动添加 padding,以保持卷积后输出特征图的尺寸与输入数据相同。如果 padding 参数被设置为 'VALID',则 TensorFlow 不会添加 padding,而是对输入数据进行裁剪,使得卷积后输出特征图的尺寸比输入数据小。 ### 回答2: 在TensorFlow中,padding是一个参数,用于指定在进行卷积操作时添加的边缘填充(padding)的数量。默认情况下,padding的取值可以是"VALID"或"SAME"。当padding参数为1时,出现'int' object has no attribute 'lower'的报错是因为padding参数的取值不符合预期。 在TensorFlow中,padding参数需要是一个字符串类型,不能是一个整数。这个报错的原因是由于padding参数传递的是整数类型而不是字符串类型,因此出现了'int' object has no attribute 'lower'的错误。 为了解决这个问题,我们需要将padding参数的取值改为字符串类型,比如将padding=1改为padding="SAME"或padding="VALID",这样就可以避免'int' object has no attribute 'lower'的报错了。 例如: ``` import tensorflow as tf # 使用padding="SAME" conv1 = tf.nn.conv2d(input, filters, strides=[1, 1, 1, 1], padding="SAME") # 使用padding="VALID" conv2 = tf.nn.conv2d(input, filters, strides=[1, 1, 1, 1], padding="VALID") ``` 以上就是解决报错'int' object has no attribute 'lower'的方法,需要确保padding参数是字符串类型。 ### 回答3: 在TensorFlow中,padding参数用于控制卷积层的填充方式。当你将padding参数设置为1时,会出现'int' object has no attribute 'lower'的错误。 这个错误通常是因为padding参数不正确引起的。在TensorFlow中,padding参数应该是一个字符串类型的值,只能是"VALID"或"SAME"。 - "VALID"表示不进行填充,只进行有效的卷积操作。 - "SAME"表示进行零填充,使得输出的特征图尺寸与输入特征图尺寸相同。 当你将padding设置为1时,实际上不符合上述规则,因为padding参数不是一个字符串类型。因此,会提示'int' object has no attribute 'lower'的错误。 要解决这个问题,你需要将padding参数设置为一个合法的字符串值,如下所示: ``` padding = "SAME" ``` 这样,你就可以正确地设置卷积层的填充方式,避免了错误产生。记得在代码中确认你的padding参数的类型是字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值