首页 Paddle框架 帖子详情
无法加载 from **** import FC
收藏
快速回复
Paddle框架 问答深度学习模型训练炼丹技巧 3724 12
无法加载 from **** import FC
收藏
快速回复
Paddle框架 问答深度学习模型训练炼丹技巧 3724 12

百度架构师手把手教深度课程

2-2 【手写数字识别】之快速入门一节:

https://aistudio.baidu.com/aistudio/projectdetail/197622?pV=30470

 

用自建paddlepaddle 1.7 版本,本机jupyter发现无法通过

#加载飞桨和相关类库
import paddle
import paddle.fluid as fluid
from paddle.fluid.dygraph.nn import FC

FC 无法加载

查找nn.py:

__all__ = [
'Conv2D', 'Conv3D', 'Pool2D', 'Linear', 'BatchNorm', 'Embedding', 'GRUUnit',
'LayerNorm', 'NCE', 'PRelu', 'BilinearTensorProduct', 'Conv2DTranspose',
'Conv3DTranspose', 'GroupNorm', 'SpectralNorm', 'TreeConv'
]

FC被哪个模块代替??

查文档:

该api已经被删除,请使用 Linear 接口,具体请参考 Linear 。

但是FC参数: class paddle.fluid.dygraph.FC(name_scope, size, num_flatten_dims=1, param_attr=None, bias_attr=None, act=None, is_test=False, dtype='float32')

与Linear参数:class paddle.fluid.dygraph.Linear(input_dim, output_dim, param_attr=None, bias_attr=None, act=None, dtype='float32')

不太一样。

求:

# 定义mnist数据识别网络结构,同房价预测网络
class MNIST(fluid.dygraph.Layer):
def __init__(self, name_scope):
super(MNIST, self).__init__(name_scope)
name_scope = self.full_name()
# 定义一层全连接层,输出维度是1,激活函数为None,即不使用激活函数
self.fc = FC(name_scope, size=1, act=None)

# 定义网络结构的前向计算过程
def forward(self, inputs):
outputs = self.fc(inputs)
return outputs

上面黑体字如果用Linear函数改写应该怎么写?Linear没有name_scope参数。

0
收藏
回复
全部评论(12)
时间顺序
CChan
#2 回复于2020-03

paddle1.7的name_scope已经移除了:https://www.paddlepaddle.org.cn/documentation/docs/zh/release_note_cn.html

0
回复
CChan
#3 回复于2020-03

直接

Linear(input_dim, out_dim)

就可以了

0
回复
海龟学徒
#4 回复于2020-03

同问,示例教程跑不通呀!

0
回复
CChan
#5 回复于2020-03
同问,示例教程跑不通呀!

可以尝试下低版本的paddle

0
回复
Y
Younghero火狮
#6 回复于2020-04
CChan #3
直接 [代码] 就可以了

还是不行啊,提示input_dim找不到。

0
回复
AIStudio810259
#7 回复于2020-04

1.7没有FC

请用Linear替代

0
回复
A
AIStudio259459
#8 回复于2020-04

#加载飞桨和相关类库
import paddle
import paddle.fluid as fluid
from paddle.fluid.dygraph import Linear
import numpy as np
import os
from PIL import Image

 

# 定义mnist数据识别网络结构,同房价预测网络
class MNIST(fluid.dygraph.Layer):
    def __init__(self, name_scope):
        super(MNIST, self).__init__(name_scope)
        name_scope = self.full_name()
        # 定义一层全连接层,输出维度是1,激活函数为None,即不使用激活函数
        self.fc = Linear(input_dim=784, output_dim=1, act=None)
        
    # 定义网络结构的前向计算过程
    def forward(self, inputs):
        outputs = self.fc(inputs)
        return outputs

# 定义飞桨动态图工作环境
with fluid.dygraph.guard():
    # 声明网络结构
    model = MNIST("mnist")
    # 启动训练模式
    model.train()
    # 定义数据读取函数,数据读取batch_size设置为16
    train_loader = paddle.batch(paddle.dataset.mnist.train(), batch_size=16)
    # 定义优化器,使用随机梯度下降SGD优化器,学习率设置为0.001
    optimizer = fluid.optimizer.SGDOptimizer(learning_rate=0.001, parameter_list=model.parameters())

 

三个修改处丢这了

3
回复
d
dewarfwa
#9 回复于2020-04
#加载飞桨和相关类库 import paddle import paddle.fluid as fluid from paddle.fluid.dygraph import Linear import numpy as np import os from PIL import Image   # 定义mnist数据识别网络结构,同房价预测网络 class MNIST(fluid.dygraph.Layer):     def __init__(self, name_scope):         super(MNIST, self).__init__(name_scope)         name_scope = self.full_name()         # 定义一层全连接层,输出维度是1,激活函数为None,即不使用激活函数         self.fc = Linear(input_dim=784, output_dim=1, act=None)              # 定义网络结构的前向计算过程     def forward(self, inputs):         outputs = self.fc(inputs)         return outputs # 定义飞桨动态图工作环境 with fluid.dygraph.guard():     # 声明网络结构     model = MNIST("mnist")     # 启动训练模式     model.train()     # 定义数据读取函数,数据读取batch_size设置为16     train_loader = paddle.batch(paddle.dataset.mnist.train(), batch_size=16)     # 定义优化器,使用随机梯度下降SGD优化器,学习率设置为0.001     optimizer = fluid.optimizer.SGDOptimizer(learning_rate=0.001, parameter_list=model.parameters())   三个修改处丢这了
展开

您好,想问一下parameter_list=model.parameters(),parameters()在MNIST类中我没看到定义,请问是怎么来的?

0
回复
A
AIStudio259459
#10 回复于2020-04
您好,想问一下parameter_list=model.parameters(),parameters()在MNIST类中我没看到定义,请问是怎么来的?

class MNIST(fluid.dygraph.Layer):

来自 Layer

0
回复
乌拉__----
#11 回复于2020-06

我的也不行嘞,移除了?

0
回复
夜雨飘零1
#12 回复于2020-07

新的API已经更新了,看看这个:https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/dygraph_cn.html

 

0
回复
AIStudio810258
#13 回复于2020-07

1.7版本后的改动

1.所有的层都要设置上一层的输入维度imput_dim=上一层输出的通道数

2.不再使用name_scope

3.设置优化器时需要指定parameter_list=model.parameters(),model.parameters()是被优化的模型的参数。这样指定很适合GAN等多个模型同时训练的情况。

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户