首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最小化()缺少一个必需的位置参数:'var_list‘

最小化()缺少一个必需的位置参数:'var_list‘
EN

Stack Overflow用户
提问于 2021-03-27 07:32:31
回答 1查看 713关注 0票数 0
代码语言:javascript
运行
复制
much_data = np.load('muchdata-50-50-20.npy',allow_pickle=True)
# If you are working with the basic sample data, use maybe 2 instead of 100 here... you don't have enough data to really do this
train_data = much_data[:-100]
validation_data = much_data[-100:]



def train_neural_network(x):
    prediction = convolutional_neural_network(x)
    cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=y) )
    optimizer = tf.optimizers.Adam(learning_rate=1e-3).minimize(cost)
    
    hm_epochs = 10
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        
        successful_runs = 0
        total_runs = 0
        
        for epoch in range(hm_epochs):
            epoch_loss = 0
            for data in train_data:
                total_runs += 1
                try:
                    X = data[0]
                    Y = data[1]
                    _, c = sess.run([optimizer, cost], feed_dict={x: X, y: Y})
                    epoch_loss += c
                    successful_runs += 1
                except Exception as e:
                    # I am passing for the sake of notebook space, but we are getting 1 shaping issue from one 
                    # input tensor. Not sure why, will have to look into it. Guessing it's
                    # one of the depths that doesn't come to 20.
                    pass
                    #print(str(e))
            
            print('Epoch', epoch+1, 'completed out of',hm_epochs,'loss:',epoch_loss)

            correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y))
            accuracy = tf.reduce_mean(tf.cast(correct, 'float'))

            print('Accuracy:',accuracy.eval({x:[i[0] for i in validation_data], y:[i[1] for i in validation_data]}))
            
        print('Done. Finishing accuracy:')
        print('Accuracy:',accuracy.eval({x:[i[0] for i in validation_data], y:[i[1] for i in validation_data]}))
        
        print('fitment percent:',successful_runs/total_runs)

# Run this locally:
train_neural_network(x)

产出:

代码语言:javascript
运行
复制
TypeError                                 Traceback (most recent call last)
<ipython-input-22-a2ff083095aa> in <module>
     48 
     49 # Run this locally:
---> 50 train_neural_network(x)

<ipython-input-22-a2ff083095aa> in train_neural_network(x)
      9     prediction = convolutional_neural_network(x)
     10     cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=y) )
---> 11     optimizer = tf.optimizers.Adam(learning_rate=1e-3).minimize(cost)
     12 
     13     hm_epochs = 10

TypeError: minimize() missing 1 required positional argument: 'var_list'
EN

回答 1

Stack Overflow用户

发布于 2022-03-16 07:25:27

代码中用于minimize()的语法不正确,因为此优化器方法至少需要2个参数才能通过更新var_list来最小化loss

代码语言:javascript
运行
复制
minimize(
    loss, var_list, grad_loss=None, name=None, tape=None
)

您可以查看引用以获得有关minimize()的更多详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66829033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档